# asks the question and gives the choices
choice=input('what is your favourite colour? press 1 for red, 2 for blue, 3 for yellow or 4 to quit')
# if the responder responds with choice 1 or 2,3,4 it will print this
if choice=='1' or 'one':
print('red means anger')
elif choice=='2'or 'two':
print('blue represents calmness')
elif choice=='3' or 'three':
print('yellow represents happiness')
elif choice=='4' or 'four':
print('it was nice meeting you. goodbye.')
else:
print('sorry incorrect answer please try again.')
我的一个学生写了这篇文章,我似乎无法让它发挥作用。 救命!它不断重复红色意味着愤怒。如果我注释掉'或', 它有效,但为什么她不能使用'或'?我希望她只添加一个循环 如果这是第一次。
答案 0 :(得分:3)
or
未正确使用。你需要写
choice == '1' or choice == 'one'
否则类型强制将评估一个'为true且第一个if语句的or
条件始终为true
(重言式),其他情况永远不会被检查。
答案 1 :(得分:0)
当你有像
这样的陈述时if choice=='1' or 'one':
它将被视为
if (choice=='1') or 'one':
'one'总是评估为True,因此if条件总是满足,你需要的是如下,括号使事情更清楚
if (choice=='1') or (choice=='one'):
或者,当你有多个OR语句要检查一个值时,可以考虑将所有的检查值放在一个列表中并在下面使用,这样看起来更清晰,当检查值增加时
if choice in ['1', 'one', '2', 'two', '3', 'three']: