2016-04-14 63 views
-1

工作,我寫了如下簡單的程序:爲什麼如果name ==(「愛麗絲」或‘鮑勃’):不python3

name = input("enter your name\n") 
if name == ("Alice" or "Bob"): 
    print ("Hello" + ' ' + name) 

的問題是,爲什麼上面的程序並沒有給預期的結果當我輸入Bob

+0

你有沒有注意到你的代碼有語法錯誤?或者,如果名字==(「Alice」,「Bob」):' –

+0

@KarolyHorvath請問你能給我一些鏈接嗎? – Shash

回答

-1

如果您運行x = ("Alice" or "Bob"),X計算結果爲「愛麗絲」,這就是爲什麼「鮑勃」不工作 解決方案:

if name == "Alice" or name == "Bob": 
    print("Hello", name) 
+3

()'和square []'之間的區別? – Bahrom

+0

@BAH,是否有一個名字==(「Alice」... ...' –

+1

@AlexanderHolman是的,這些是不同的數據結構 - 正常的括號定義了一個「元組」(不可變的),方括號定義了一個「列表」(可變的) – Bahrom

2

如果你這樣做:

if name == ("Alice" or "Bob") 

,會先評估( 「愛麗絲」 和 「鮑勃」),因爲它是括號之間......然後把它比作名稱...

如果你這樣做:

if (name == "Alice") or (name == "Bob") 

那麼它會正確評估

+4

對不起,Python不是最好的,但是如果在[「Alice」,「Bob」]中輸入名稱,那麼更好的方法不是' –

+0

請參見示例https://repl.it/CFbQ/1 –

+1

@ AlexanderHolman的方法更「pythonic」,也不需要括號。「if name ==」Alice「or name ==」Bob「''是完全有效的 – Igor

相關問題