2015-11-17 37 views
0

我只是打打鬧鬧在Python,而我理解的布爾邏輯,如何與「真」或「假」 ......當您使用我不明白的結果其他條款。舉例來說,如果我鍵入的Python:請給我解釋一下這個布爾代碼是如何工作

"bear" and "dog" 
"1 and 6" 
"crab" or "food" 

輸出爲:

'dog' 
6 
'crab' 

爲什麼?我沒有將這些變量中的任何一個賦值爲'True'或'False',那麼Python怎麼知道打印出哪一個呢?你如何確定哪個是'真',哪個是'假'?

很抱歉,如果這是地方公佈;我試圖尋找,但不確定這種問題的關鍵術語是什麼。

+1

這是稍微更普遍,所給的問題。根本問題是更多「Python中的真實性如何工作?」 – zxq9

+0

@ zxq9:我試圖選擇一個覆蓋問題的方面。 「布爾」和「Python中的」怎麼樣? – user2357112

+0

@ user2357112你知道,這似乎是奇怪的是,沒有針對特定問題的規範Q/A - 其中一個答案,需要觸及的主題短短一次性的問題(像這樣的,你所引用的一個) ,但從來沒有完全解釋過它。 – zxq9

回答

2

這是一個有點你看,這裏的一個特例:

通常情況下,你不會在乎的a and b的實際價值,但只有它是否計算爲True與否。

這裏會發生什麼事是,or返回第一個值,如果計算結果爲True,第二否則,這樣

if a or b: 

實際運行if a究竟是否a計算結果爲True,並if b如果它不。

and工作周圍的其他方法:如果第一個操作數的計算結果爲True,返回第二個(a and bTrue只有當兩個評估爲True),否則返回第一個。

這是非常方便的,如果你有當另一件事是False,即只應執行的語句。

function_that_might_return_false_on_error() or die_horribly() 
+0

請千萬不要用這個作爲解決三元報表... –

+0

@JoranBeasley我同意,這看起來太的perl-Y給我,但它是怎麼回事兒usedf。 –

相關問題