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)
  • JavaBigDecimal用法类似。
  • 输出
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