在Python 2.7有人可以解釋這裏的邏輯或我問什麼? (布爾運算)
詢問時解釋如下:
(1 or 3) > 2
返回False
這是爲什麼?我有效地問口譯員什麼,顯然不是1或3是否大於2。
同樣,問(1 or 5) in range(2,6)
也返回False
我100%肯定它與聲明我的(X或Y)部分做的,但同樣,這是爲什麼?我不需要這麼多,說明這樣的事情不同的方式,因爲我知道我可能只是問:
if x in range(2,6) or y in range(2,6):
但我只是想知道爲什麼它不工作!
'或'不工作,你如何看待它 - 它需要左側和右側,調用'布爾()'他們兩個,並檢查是否要麼造成的值爲'True',並返回第一個(如果沒有,則返回False)。做到這一點的最好方法是'any(x> 2 for(in(1,3))'。 – 2013-03-06 08:14:27
@Lattyware,一個小小的修正,如果左側評估爲「真」,它不會嘗試評估右側。 – GilZ 2013-03-06 08:18:19
@Gil真的,我的解釋過於簡單。 – 2013-03-08 01:07:09