連結或運算子
在測試幾個相等比較中的任何一個時:
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):