2013-10-25 46 views
1

「和 - 或」技巧的目的是什麼?和 - 或在Python中的技巧

>>> a = "" 

>>> b = "second" 

>>> 1 and a or b 

'second' 
+0

這就像一個內聯'if',工作不太可靠。 – Ryan

+1

具體而言,你會發現它在這裏工作的可靠性較差,因爲'a'是虛假的。有了任何真實的東西,它就會像'a if 1 else b'一樣工作。 – Ryan

+0

是的,我應該檢查一下是否永遠不會是錯誤的。我更想問,爲什麼我會用「和 - 或」技巧而不是if語句? – ThePhantom05

回答

4

這只是一個模仿在C語言家族中發現的條件操作符(又稱「三元」運算符)的方式。過去,沒有直接的等同表達。下面的表達式是有些相當於:

# in python 
a and b or c 
// in C 
a ? b : c 

不過不要使用它。由於Python的語義,如果b是虛假的,表達式將評估爲c

從Python2.5(PEP 308)開始,它們就爲這個結構提供了一個合適的語法。

b if a else c