链接或运算符

在测试几个相等比较中的任何一个时:

if a == 3 or b == 3 or c == 3:

很容易将其缩写为

if a or b or c == 3: # Wrong

这是错的; or 运算符的优先级低于 ==,因此表达式将被计算为 if (a) or (b) or (c == 3):。正确的方法是明确检查所有条件:

if a == 3 or b == 3 or c == 3:  # Right Way

或者,可以使用内置的 any() 函数代替链式 or 运算符:

if any([a == 3, b == 3, c == 3]): # Right

或者,为了提高效率:

if any(x == 3 for x in (a, b, c)): # Right

或者,为了缩短它:

if 3 in (a, b, c): # Right

在这里,我们使用 in 运算符来测试值是否存在于包含我们要比较的值的元组中。

同样,写入也不正确

if a == 1 or 2 or 3:

应该写成

if a in (1, 2, 3):