一、Python数字类型
在Python中,数字类型可以分为三种:整数(int)、浮点数(float)和复数(complex)。其中,布尔值(bool)是整数的子类型。这些数字类型在Python中非常常见,几乎每个程序都会用到它们。
整数有无限的精度,也就是说可以表示任意大的整数,例如:
x = 12345678901234567890 print(x) # 输出:12345678901234567890
浮点数通常使用C语言中的double类型实现,其精度和内部表示法取决于运行程序的机器,可以使用sys.float_info来查看。例如:
import sys
print(sys.float_info) # 输出:<class ‘sys.float_info’>,包含浮点数精度和内部表示法信息。
复数包含实部和虚部,分别以一个浮点数表示。可以使用z.real和z.imag方法从一个复数z中提取这两个部分。例如:
z = 3 + 4j print(z.real) # 输出:3.0 print(z.imag) # 输出:4.0
尝试一些简单的 Python 命令,启动解释器,等待主提示符(>>> )出现。
解释器就像一个交互式的计算器一样,可以执行基本的数值计算。可以输入一个数学表达式,解释器会给出结果。在Python中,可以使用加法运算符(+),减法运算符(-),乘法运算符(*)和除法运算符(/)来执行基本的算术运算。圆括号 (()) 可被用来进行分组。 例如:
>>>2 + 2 4 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>8 / 5 # division always returns a floating point number 1.6
整数的类型是int;带有小数的类型是float;除法运算符(/)总是返回浮点数。如果进行地板除法并得到一个整数结果,可以使用地板除法运算符(//)。如果计算余数,可以使用取余运算符(%):
>>>17 / 3 # classic division returns a float 5.666666666666667 >>> >>>17 // 3 # floor division discards the fractional part 5 >>>17 % 3 # the % operator returns the remainder of the division 2 >>>5 * 3 + 2 # floored quotient * divisor + remainder 17
Python还支持用双星号(**)进行乘方运算:
>>>5 ** 2 # 5 squared 25 >>>2 ** 7 # 2 to the power of 7 128
等号(=)用于给变量赋值。在Python中可以创建一个变量并将一个值赋给它,赋值后下一个交互提示符的位置不显示任何结果:
>>>width = 20 >>>height = 5 * 9 >>>width * height 900
如果尝试使用一个未定义的变量,将会引发一个NameError错误:
>>>n # try to access an undefined variable Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'n' is not defined
Python支持与浮点数进行混合运算,会将整数转换为浮点数:
>>>4 * 3.75 - 1 14.0
在交互模式下,之前输出的表达式的结果会赋给一个特殊的变量_,把 Python 当作计算器时,用该变量实现下一步计算更简单,例如:
>>>tax = 12.5 / 100 >>>price = 100.50 >>>price * tax 12.5625 >>>price + _ 113.0625 >>>round(_, 2) 113.06
然而,最好将_视为只读变量,不要对其进行显式赋值,否则会创建一个同名的独立局部变量,该变量会屏蔽内置变量。
除了以上三种基本数字类型外,Python标准库还包括其他数字类型,例如Fraction(表示有理数)和Decimal(以用户定制精度表示浮点数)等。在实际开发过程中,我们需要根据不同的需求选择合适的数字类型进行处理。
二、Python数字类型转换
一些常用的数据类型转换函数,它们可以将一个数据转换为指定的数据类型。对数据内置的类型进行转换,只需要将数据类型作为函数名即可。
- int(x):将x转换为整数类型。如果x是浮点数,将截断小数部分并返回整数部分。如果x是字符串,它必须表示一个合法的整数。
- float(x):将x转换为浮点数类型。无论x是整数还是字符串,都会转换为相应的浮点数。
- complex(x):将x转换为复数类型,虚部默认为0。如果x是数字,它将成为复数的实部。
- complex(x, y):将x和y转换为复数类型,分别作为实部和虚部。x和y可以是数字表达式。
注意:强制数据类型转换可能会导致精度丢失。在一些对精度要求较高的场景中,建议慎用强制数据类型转换。