我剛開始學習Python。我碰到下面的代碼來無法理解在Python中輸出的原因
if 0:
print "And now for something completely different..."
else:
print "What's all this, then?"
我明白,輸出應爲What's all this, then?
,但我似乎無法找到一個合適的解釋。希望有人能讓我明白這一點。
謝謝。
我剛開始學習Python。我碰到下面的代碼來無法理解在Python中輸出的原因
if 0:
print "And now for something completely different..."
else:
print "What's all this, then?"
我明白,輸出應爲What's all this, then?
,但我似乎無法找到一個合適的解釋。希望有人能讓我明白這一點。
謝謝。
0
是在布爾上下文False
。同樣適用於空字符串,列表等
在布爾運算的情況下,以及當表達式通過控制流語句中,以下值解釋爲假: False,None,所有類型的數字零,以及空字符串和容器(包括字符串,元組,列表,字典,集合和frozensets)。所有其他值都被解釋爲true。 (請參閱__nonzero__()特殊方法來改變這種情況。)
零被解釋爲在Python(和許多其他的編程語言)「假」
0是錯誤的。布爾邏輯和邏輯上以及幾乎所有其他情況。
你對此感到困惑嗎?
數字零總是在Python解釋爲假:在測試中使用時
而且幾乎所有的東西,是不是0就是真。任何數字(包括底片)都被視爲True,但「無」是False。非空字符串爲True,空字符串爲False。
在文檔中查看Python的布爾或邏輯函數。此外,忘記你在學校的基本數學(S)學過的一切,因爲....
>>> 1 and 1
1
>>> 2 and 2
2
老實說,這是有道理的......
如果你想知道*爲什麼有人在寫這樣的代碼:我想這只是爲了演示的目的。顯然不需要這樣的條件。 – 2011-02-03 18:38:16
是的,它純粹是爲了演示的目的。正如我所說,我正在學習Python。所以請參考基本文檔。 – Dharmit 2011-02-03 18:42:43