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)
- 与
Java
中BigDecimal
用法类似。 - 输出
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