2016-04-14 115 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

相关问题