連結或運算子

在測試幾個相等比較中的任何一個時:

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):