2013-10-18 66 views
-5

我試圖弄清楚什麼是做陳述喜歡Python的方式來檢查條件

if is not 100 or is not 101: 
    do something: 
+1

'不是'需要兩個操作數。左側操作數在哪裏?你應該*不*使用身份來測試平等。使用'!= 100'。 –

回答

2

如果你有一個整數值的最Python的方式,你想測試,這是不是100,而不是101,你可以使用一個in成員資格測試有一個元組:

if foo not in (100, 101): 

你應該使用身份測試與整數(isnot is)。身份測試使用小整數(-5到255之間)的事實是CPython優化細節。身份與擁有相同的價值不是一回事;兩個對象可以具有相同的值,但不一定是相同的參考:

>>> value1 = 4242 
>>> value2 = 4242 
>>> value1 == value2 
True 
>>> value1 is value2 
False 
>>> value3 = value1 # assignment 
>>> value1 == value3 
True 
>>> value1 is value3 
True