我正在制作一个简短的节目,只是为了好玩,当输入我的名字时,它会说“你喜欢程序员”。这有效但但其他条件与elif和其他条件不起作用,相反,他们只打印出if条件。 `a =输入('你叫什么名字')
a =input('What is your name')
if a == 'Hasan' or 'hasan':
print('Hi programmer!')
elif a == 'Bob' or 'bob':
print('Big fat boi')
else:
print(a + ", i'm sorry to say this, but you suck!!!")
我正在浏览StackOverflow,但找不到我想要的答案。我也查看了其他网站,但他们似乎从来没有真正帮助过。我的if语句的输出应打印出'hi programmer!'它确实如此。然而,当我检查我的elif和其他条件时,它仍然输出'hi programmer'当elif条件的输出应该是'Big fat boi'并且else语句的输出应该是“(a),i”很抱歉这样说但是你很糟糕!!!“ 如果我没有说明任何内容,我很抱歉,这是我的第一个问题。
答案 0 :(得分:1)
此示例的正确语法是:
a =input('What is your name')
if a == 'Hasan' or a == 'hasan':
print('Hi programmer!')
elif a == 'Bob' or a == 'bob':
print('Big fat boi')
else:
print(a + ", i'm sorry to say this, but you suck!!!")
你最初写它的方式是错误的。声明:
a == 'Hasan' or 'hasan'
当a
等于' Hasan'时,返回True并返回' hasan'在所有其他情况下。基本上,总是使用第一个if分支,因为' hasan'由Python解释器评估为True。
Internet和StackOverflow上有一些资源可以理解在这种情况下会发生什么。例如,阅读此问题的答案:Python boolean expression and or
答案 1 :(得分:1)
当你这样做时
if a == 'Hasan' or 'hasan':
检查:
if a == 'Hasan'
或
if 'hasan'
由于'hasan'
不是空字符串,因此它始终返回True
。 (有关具有布尔值的更多对象,请参阅Python文档上的Truth value testing。)
这导致代码始终在您的第一个True
语句中返回if
。
为了让您的代码按预期工作,您需要检查
if a == 'Hasan' or a =='hasan':
您还可以检查输入的小写字母,如此
if a.lower() == 'hasan':
答案 2 :(得分:0)
您需要更改[(0, 1), (1, 2), (2, 5), (5, len(str)]
声明:
if/elif/else
这是因为if a == 'Hasan' or a == 'hasan':
print('Hi programmer!')
elif a == 'Bob' or a == 'bob':
print('Big fat boi')
else:
print(a + ", i'm sorry to say this, but you suck!!!")
总是评估为真。