我无法理解为什么这不起作用:
EntryRow = input("Which row would you like to book for?")
Upper = EntryRow.upper()
while Upper != 'A' or 'B' or 'C' or 'D' or 'E':
print("That is not a row")
EntryRow = input("Which row would you like to book for?")
Upper = EntryRow.upper()
答案 0 :(得分:3)
'!='优先于'或'。你的代码真正做的是:
while (Upper != 'A') or 'B' or 'C' or 'D' or 'E':
总是如此。
请改为尝试:
while not Upper in ( 'A', 'B', 'C', 'D', 'E' ):
答案 1 :(得分:2)
您需要明确写出每个条件并使用and
while Upper != 'A' and Upper != 'B' and ...
解释器将'B'
和'C'
等等作为独立条件,所有条件都计算为True
,因此您的if
语句始终为真。
答案 2 :(得分:1)
您正在以错误的方式使用or
。 (正确的方式见Andrew's answer)。
一种可能的捷径是使用遏制检查:
while Upper not in ('A', 'B', 'C', 'D', 'E'):
...