2015-04-24 68 views
-2

什麼我試圖做的是讓用戶輸入一個名稱,然後有編程取這個名字和測試「if」語句爲什麼不工作這碼

name = input("Enter name here: ") 
if name is "Bill": 
    print("Hello" + name) 
else: 
    print("Hello") 

每當我輸入比爾作爲它的名字,只是馬上說程序結束了,而沒有真正打印我的第二個命令。

+3

什麼是EXACT錯誤? – m0dem

+0

不正確使用'is'運算符。 – Shashank

+0

函數['input'](https://docs.python.org/2/library/functions.html#input)的意思是幹什麼的? –

回答

4

嘗試if name == "Bill":而不是is

這是我的理解is比較身份而不是價值相等。

+0

@PeterWood實際上它並不是。至少3.4。 – miradulo

2

這裏有一個小例子,可以幫助你瞭解Python的identities

>>> name='Bill' 
>>> name1='Bill' 
>>> if name is name1: 
    print 'yes'    

yes     #Prints "yes" 

>>> id(name)  \ 
45197024   | #Because the ids are the same for both 'name' and 'name1' 
>>> id(name1)  | 
45197024   /

>>> name1=input() 
Bill 

>>> if name is name1: 
    print 'yes' 
         #Does NOT print "yes" 
>>> id(name)  \ 
45197024    | #Because the ids are NOT the same for both 'name' and 'name1' 
>>> id(name1)  | 
43847648   /

is運營商的文檔:

的運營商是與不測試對象標識:x是y是真的 當且僅當x和y是相同的對象。

由於你的兩個對象不一樣,你的if語句不起作用。

+1

我懷疑這是因爲每個範圍都有自己的字符串緩存或類似的東西,但我不確定。雖然答案很好。 – Shashank