Python 表达式

The Python Language Reference > Expressions > Operator precedence

算术

不会自动转换类型

'2' + 2  # TypeError

没有 ++, -- 运算符,变通方法

i = 0
i += 1

除法有两种,/ 结果为 float,//(floor division)结果为 integer; 除以 0 抛出 ZeroDivisionError。

10 / 2   # 5.0
10 // 2  # 5
10 / 0   # ZeroDivisionError

幂运算

10 ** 2   # 100
10 ** -2  # 0.01

比较

链式比较

x = 2
1 < x <= 3

Conditional operator

没有 conditional operator ?:,变通方法

a if condition else b

先计算 condition,根据的它的结果返回 a 或 b。

x = 1 if True else 0
print(x)