2011-02-03 41 views
1

我剛開始學習Python。我碰到下面的代碼來無法理解在Python中輸出的原因

if 0:

print "And now for something completely different..." 

else:

print "What's all this, then?" 

我明白,輸出應爲What's all this, then?,但我似乎無法找到一個合適的解釋。希望有人能讓我明白這一點。

謝謝。

+2

如果你想知道*爲什麼有人在寫這樣的代碼:我想這只是爲了演示的目的。顯然不需要這樣的條件。 – 2011-02-03 18:38:16

+0

是的,它純粹是爲了演示的目的。正如我所說,我正在學習Python。所以請參考基本文檔。 – Dharmit 2011-02-03 18:42:43

回答

5

0是在布爾上下文False。同樣適用於空字符串,列表等

python docs

在布爾運算的情況下,以及當表達式通過控制流語句中,以下值解釋爲假: False,None,所有類型的數字零,以及空字符串和容器(包括字符串,元組,列表,字典,集合和frozensets)。所有其他值都被解釋爲true。 (請參閱__nonzero__()特殊方法來改變這種情況。)

4

零被解釋爲在Python(和許多其他的編程語言)「假」

1

0是錯誤的。布爾邏輯和邏輯上以及幾乎所有其他情況。

你對此感到困惑嗎?

1

而且幾乎所有的東西,是不是0就是真。任何數字(包括底片)都被視爲True,但「無」是False。非空字符串爲True,空字符串爲False。

在文檔中查看Python的布爾或邏輯函數。此外,忘記你在學校的基本數學(S)學過的一切,因爲....

>>> 1 and 1 
1 

>>> 2 and 2 
2 

老實說,這是有道理的......

1

如在別處指出,不像一些語言(但像一些其他的),Python會將0解釋爲false,因此else會被激活而不是當時的。爲了使當時的部分運行,你必須做一些像if 1:(或另一個非零值)的東西。請不要在現實生活中這樣編碼。有關更多信息,請參閱if(和another)和booleans上的Python文檔。