2016-12-28 32 views
3

我做了一個簡單的測試,如下圖所示:布爾測試:Python的打印「1」或「真」

>>> valsH["S0"] = 1 
>>> valsH["I1"] = 0 
>>> valsH["I2"] = 1 
>>> valsH["I0"] = 1 
>>> """original position of: not valsH["I1"]""" 
>>> 
>>> valsH["I0"] and not valsH["I1"] and valsH["I2"] and valsH["S0"] 
1 
>>> """After moving: not valsH["I1"] to the end of the expression""" 
>>> 
>>> valsH["I0"] and valsH["I2"] and valsH["S0"] and not valsH["I1"] 
True 
>>> 

如此看來,不同的地方

not valsH["I1"] 

是,值了布爾方程打印爲'1'或'真'。

這是爲什麼?

回答

1

這是通過and如何工作。 讓我們來看看下面的例子:

p and q 

首先評估P,如果P爲真,評估Q值。如果q爲真,則返回True,但返回任何類型的q。所以:

1 and True # True 
True and 1 # 1 

對於or它是相反的。由於只有一個要求爲真,如果第一個爲真,則返回該類型的真。所以:

1 or True # 1 
True or 1 # True 
0

當您使用邏輯and操作的Python計算上次操作足夠給一個答案。例如:

如果是:

1 and True and 1 

它會返回1,因爲它需要去到最後(全部爲真),它會返回一個是到底,即1

或者:

1 and 1 and True 

,它將返回true,因爲真正的是最後一個操作數。

另一種情況:

1 and 0 and False 

它會返回0,因爲它停在0,結果爲0

False and 0 and 1 

將返回false,因爲它停止在錯誤導致False評測。

希望這會有所幫助。