- 简述
- 整数
- 小数
- 复数
- 数值计算
python 有三种不同的数字类型:整数、浮点数、复数。
整数
- 长度不限制,可以做无限制的运算
小数
- 小数由于存放标准按照 IEEE754 标准,存在误差,所以在python中,会发现 0.3 != 0.2+0.1:
print(0.3 == 0.2+0.1)
print(0.2+0.1)
打印结果:
如何使得 0.3 = 0.2+0.1 ?
引入 decimal
import decimal
a = decimal.Decimal("0.1")
b = decimal.Decimal("0.2")
print("a+b=",a+b)
print(a+b == 0.3)
打印结果为什么还是 false?:
打印 a+b 的数字类型以及 0.3 的数字类型:
print(type(a+b))
print(type(0.3))
打印结果:
发现一个是 decimal 类型 (a+b),一个是 float 类型 (0.3)
所以我们要把 0.3 也转换成 decimal 类型或者把 decimal 类型转换成 float ?
尝试一:把 decimal 类型转换成 float :
c = float(a+b)
print(type(c))
print(type(0.3))
print(c==0.3)
成功:
尝试二:把 0.3 转换成 decimal:
c = decimal.Decimal("0.3")
print(c==a+b)
成功:
复数
复数格式: a+bj
其中 a 称为实部,b 称为虚部。
x = 1+2j
print(x.real) # 打印实部
print(x.imag) # 打印虚部
结果:
数值计算
符号 | 运算 |
---|---|
// | 取比目标结果小的最大整数 |
% | 取余 |
divmod(a,b) | 返回 (a//b, a%b) |
abs(a) | 返回 a 的绝对值,取复数的摸 |
int(a) | 取 a 的整数部分 |
complex() | 转化为复数 |
pow(a,b) | 计算 a 的 b 次方 |
a ** b | 计算 a 的 b 次方 |
pow(a,b,c) | a^b%c |
范例:
print(3//2)
print(3%2)
print(abs(-2))
print(abs(1+2j))
print(int(5.9))
print(complex("1+2j"))
print(2 ** 3)
print(pow(2,3))
print(pow(2,3,5))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)