什麼我試圖做的是讓用戶輸入一個名稱,然後有編程取這個名字和測試「if」語句爲什麼不工作這碼
name = input("Enter name here: ")
if name is "Bill":
print("Hello" + name)
else:
print("Hello")
每當我輸入比爾作爲它的名字,只是馬上說程序結束了,而沒有真正打印我的第二個命令。
什麼我試圖做的是讓用戶輸入一個名稱,然後有編程取這個名字和測試「if」語句爲什麼不工作這碼
name = input("Enter name here: ")
if name is "Bill":
print("Hello" + name)
else:
print("Hello")
每當我輸入比爾作爲它的名字,只是馬上說程序結束了,而沒有真正打印我的第二個命令。
這裏有一個小例子,可以幫助你瞭解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語句不起作用。
我懷疑這是因爲每個範圍都有自己的字符串緩存或類似的東西,但我不確定。雖然答案很好。 – Shashank
什麼是EXACT錯誤? – m0dem
不正確使用'is'運算符。 – Shashank
函數['input'](https://docs.python.org/2/library/functions.html#input)的意思是幹什麼的? –