2013-03-16 84 views
1

每當我運行這個時,我會得到第三個選項,它應該返回第一個,因爲s ='yes'。這裏出了什麼問題?爲什麼我的條件返回「none?」

def shut_down(s): 
    if s is 'yes': 
     return 'Shutting down...' 
    elif s is 'no': 
     return 'Shutdown aborted!' 
    else: 
     return "Sorry, I didn't understand you" 

ans = 'Yes' 
s = ans.lower() 
shut_down(s) 
+1

這是http://stackoverflow.com/questions/2988017/string-comparison-in-python-is-vs重演 – 2013-03-16 22:55:54

回答

5

變化

if s is 'yes': 

if s == 'yes': 

elif s is 'no': 

elif s == 'no': 

is雖然is a valid operator,它不是在這裏使用的一個(它比較對象身份代替比較所述字符序列)。

4

is測試身份,而不是平等。爲了測試一個字符串是否是等於yes使用s=='yes'

相關問題