Python数值类型
a = 1;
a = 0.1;
a = 1 + 2j;
基本运算
加减乘除
整数
print(1 + 2)
print(1 - 2)
print(1 * 2)
print(1 / 2)
3
-1
2
0.5
浮点数
print(0.1 + 0.2)
print(0.1 - 0.2)
print(0.1 * 0.2)
print(0.1 / 0.2)
0.30000000000000004
-0.1
0.020000000000000004
0.5
- 由输出可见,浮点数直接进行基本运算会存在误差,所以建议使用
deciaml
模块进行浮点数计算,如加法:
a = decimal.Decimal('0.1')
b = decimal.Decimal('0.2')
print(a + b)
0.3
复数
c = 1 + 2j
d = 2 + 1j
print(c + d)
print(c - d)
print(c * d)
print(c / d)
(3+3j)
(-1+1j)
5j
(0.8+0.6j)
双除 && 模除
整数
- 一般只用于整数计算
- 双除(
//
):也叫地板除,即向下取整。与Java中的/
类似,但不完全相同。如Java
中(-3 / 2
)结果为-1
,但Python
中的(-3 // 2
)结果为-2
。由此可见,Java
中更像是去掉小数点后的数字取整,而Python
则是实际意义上的向下取整。
- 模除(
%
):即取除法的余数。与Java中的计算结果完全一样。
print(3 // 2)
print(-3 // 2)
print(3 % 2)
print(-3 % 2)
print((-3 // 2) * 2 + (-3 % 2))
1
-2
1
1
-3
函数divmod
print(divmod(3, 2))
print(divmod(-3, 2))
(1, 1)
(-2, 1)
函数abs
整数 / 浮点数
print(abs(-3))
print(abs(-3.1))
3
3.1
复数
c = 1 + 2j
print(abs(c))
2.23606797749979
函数int
- 将浮点数/字符串转化为整数
- 如果参数是字符串,必须是整数字符串,否则报错
ValueError: invalid literal for int() with base 10
- 如果参数是浮点数,则直接去掉小数后数字取整
print(int('1'))
print(int(9.99))
print(int(9))
1
9
9
函数float
print(float('1'))
print(float('1.20'))
print(float(1.20))
print(float(1))
1.0
1.2
1.2
1.0
函数complex
print(complex("1-2j"))
(1-2j)
函数pow和运算符**
- 幂运算
pow(x, y)
含义:x 的 y 次幂,等价于 x ** y
pow(x, y, n)
含义:x 的 y 次幂,再除以n取余
print(pow(2, 3))
print(pow(2, 3, 5))
print(2 ** 3)
print(2 ** 3 % 5)
8
3
8
3