在 Python 中,内置的数字类型有整数、实数和复数,借助于标准库 fractions 中的 Fraction 对象可以实现分数及其运算,而 fractions 中的 Decimal 类则实现了更高精度的运算。
Python 支持任意大的数字,具体可以大到什么程度仅受内存大小的限制。
由于精度的问题,对于实数的运算可能会有一定的误差,应尽量避免在实数之间直接进行相等性测试,而是应该以两者之差的绝对值是否足够小作为两个实数是否相等的依据。
在数字的算术运算表达式求值时会进行隐式的类型转换,如果存在复数则都变成复数,如果没有复数但是有实数就都变成实数,如果都是整数则不进行类型转换。
print(999 ** 99)
print(0.3 + 0.2) # 实数相加
print(0.4 - 0.1) # 实数相减
print(0.4 - 0.1 == 0.3) # 应减量避免直接比较两个数是否相等
Python 内置对象支持复数类型及其运算,并且形式与数学上的复数完全一致。
x = 3 + 4j
y = 5 + 6j
print(x + y)
print(x * y)
print(abs(x)) # 内置函数abs()可用来计算复数的模
print(x.imag) # 虚部
print(x.real) # 实部
print(x.conjugate()) # 共轭复数