数字运算

所有数字类型都支持下列运算(复数不支持 // 和 %):

  • x + y, x 和 y 的和
  • x - y, x 和 y 的差
  • x * y, x 和 y 的乘积
  • x / y, x 和 y 的商
  • x // y, x 和 y 的商数
  • x % y, x / y 的余数
  • -x, x 取反
  • +x, x 不变
  • x ** y, x 的 y 次幂

Python 完全支持数字的混合运算:当一个二元算术运算符的操作数有不同数值类型时,“较窄” 类型的操作数会拓宽到另一个操作数的类型。其中整数比浮点数窄,浮点数比复数窄。但整数除以整数得到浮点数。

运算示例如下:

True + 1 + 3.14
5.140000000000001
True + 1 + 3.14 + 0j
(5.140000000000001+0j)
3/3, 3/1j
(1.0, -3j)
6//2, 6//2.0
(3, 3.0)
6%4, 6%3.0
(2, 0.0)
3**2, 3**2.0, 3**0j
(9, 9.0, (1+0j))

优先级升序排列如下:

  • +, - 加和减
  • *, /, //, % 乘,除,整除,取余
  • +x, -x 正,负
  • ** 乘方

幂运算符 ** 绑定的紧密程度低于在其右侧的算术:

1 + -20 * 4**-1
-4.0

为了易读,应该多使用小括号:

1 + (-20) * 4**(-1)
-4.0