Python Float:完整的初学者指南

193 阅读4分钟

Python有一个内置的函数float() ,可以将有效的字符串和整数转换成Python浮点数。Python的浮点数代表十进制数或实数,为数值提供更多的精度。

在Python编程中,我们有不同的数据类型来表示不同类型的数据值。例如,我们有int 类型来表示整数,str 类型来表示字符串或字符序列,complex 来表示复数,float 来表示十进制或浮点数。

在本教程中,我们将了解Python的浮点数,并讨论如何使用内置的float() 函数将字符串或整数值转换成浮点数。

Python浮点数

在Python中,有两种数据类型表示数值intfloatint 数据类型用于存储从正无穷到负无穷的整数值。而float 数据类型用于存储从正无穷到负无穷的实数或十进制数。

Python使用64位双精度值来存储浮点数,最大的浮点数可以是 1.8 x 10308这也可以表示为float('inf') float infinity。

例子

# integer number
int_num = 30

# float num
float_num = 30.0

print("The Type of int_num is:", type(int_num))

print("The Type of float_num is: ", type(float_num))

输出

The Type of int_num is: <class 'int'>
The Type of float_num is: <class 'float'>

在这个例子中,int_num 的值是30float_num 的值是30.0. 。这两个变量的值是相等的,即使我们试图在这两个变量之间进行相等的比较操作,也会发现结果是真。

这两个数值之间唯一的区别是小数点,这也是它们数据类型的区别。一个浮点数总是有一个小数点,而一个int值则没有。

Python的浮点函数

在Python中,我们有类型转换的概念,利用这个概念,我们可以使用一些内置的Python函数将一个对象的数据类型转换为另一个。

float() Float也是Python内置的类型转换函数之一,它可以将字符串和整数的数值转换为浮点数。

语法

float(number)

返回值

float()对象并不将实际的变量转换为浮点数,相反,它转换了数值的拷贝并返回。

例子

# convert an integer to float
int_num = 30

# convert the integer into float
float_num = float(int_num)

print(f"int_num ==> {int_num}; float_num == {float_num}")

输出

int_num ==> 30; float_num == 30.0

将一个整数转换成浮点数

如果一个数字是整数数据类型,我们可以使用float() 函数将其转换为浮点数。

float() 函数会在整数后面加上一个.0 ,这个数字就会被转换为浮点数。

例子

# convert a integer to float
int_num = 30

# convert the integer into float
float_num = float(int_num)

print(f"int_num ==> {int_num}; float_num == {float_num}")

输出

int_num ==> 30; float_num == 30.0

我们已经知道,float() 函数并不改变实际的变量对象,而是在对象值的副本上工作并返回结果。

还有一个技巧可以将Python中的整数转换成浮点数而不使用float函数。

我们需要做的就是在整数上加上0.0 ,由于Python的隐式类型转换属性,我们将得到一个浮点数,作为结果。

例子

# convert a integer to float
int_num = 30

# convert the integer into float without using float()

输出

int_num ==> 30; float_num == 30.0

将一个字符串值转换为浮点数

我们还可以使用float() 函数将有效的字符串数值转换为浮点数。

语法

float('number')

例子

# string number
string_num = '-30.74'

# convert the string number into float using float()
float_num = float(string_num)

print(f"int_num ==> {string_num}; float_num == {float_num}")

输出

int_num ==> -30.74; float_num == -30.74

如果我们试图将一个无效的字符串数值转换成包含任何字母和特殊符号(下划线除外)的浮点数,我们会收到ValueError

例子

# invalid string number
string_num = '-30.74o'

# convert the string number into float using float()
float_num = float(string_num)

print(f"int_num ==> {string_num}; float_num == {float_num}")

输出

Traceback (most recent call last):
File "main.py", line 5, in <module>
float_num = float(string_num)

string_num 的最后一个字符是o ,它是一个字母,float() 函数不能将字母值转换成浮动值。

浮动值中的无穷大和不是一个数字。

有三个特殊的字符串字母可以用float() 函数转换为浮点数。

  1. 'Infinity' 来表示无限大的数字。
  2. 'inf' 与无穷大相同。
  3. 'nan' 不是一个数字。

我们只能对这三个特殊的字符串字符值使用float函数,将其转换为浮点数。

例子

# positive infinite number
max_number = float('inf')
# negetive infinite number
min_number = float('-Infinity')

# not a number
nan = float('nan')

print('Max Number:', max_number)
print('Min Number:', min_number)
print('Not a Number:', nan)

输出

Max Number: inf
Min Number: -inf
Not a Number: nan

将布尔值转换为浮点数

在Python中,有两个布尔值TrueFalse 。当我们试图用float() 函数将它们转换成浮点数时,True变成了1.0 ,False变成了0.0

例子

# true value
true = float(True)
# false value
false = float(False)

print('True Number:', true)
print('False Number:', false)

输出

True Number: 1.0
False Number: 0.0

这也是为什么Python将0 作为一个假值。

总结!

Python的浮点数给数字数据值带来了更多的精度。作为一个Python开发者,与整数相比,你将会更多地与浮点数一起工作。同时,在Pythonfloat() 函数的帮助下,我们可以将布尔、字符串和整数的数据类型转换为浮点数,这使得我们很容易转换数值的数据类型。