Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 为什么这会卡在一个恒定的循环中?_Validation_Loops_Python 3.x_While Loop_Uppercase - Fatal编程技术网

Validation 为什么这会卡在一个恒定的循环中?

Validation 为什么这会卡在一个恒定的循环中?,validation,loops,python-3.x,while-loop,uppercase,Validation,Loops,Python 3.x,While Loop,Uppercase,我不明白为什么这样不行: EntryRow=input(“您想预订哪一行?”) Upper=EntryRow.Upper() 而上A'或'B'或'C'或'D'或'E': 打印(“这不是一行”) EntryRow=input(“您想预订哪一行?”) Upper=EntryRow.Upper() 您需要明确完整地写出每个条件,并使用和组合它们: while Upper != 'A' and Upper != 'B' and ... 解释器将'B'和'C'等视为独立的条件,所有条件的计算结果均为Tr

我不明白为什么这样不行:

EntryRow=input(“您想预订哪一行?”)
Upper=EntryRow.Upper()
而上A'或'B'或'C'或'D'或'E':
打印(“这不是一行”)
EntryRow=input(“您想预订哪一行?”)
Upper=EntryRow.Upper()

您需要明确完整地写出每个条件,并使用
组合它们:

while Upper != 'A' and Upper != 'B' and ...

解释器将
'B'
'C'
等视为独立的条件,所有条件的计算结果均为
True
,因此您的
if
语句始终为True。

您需要明确完整地写出每个条件,并使用
组合它们:

while Upper != 'A' and Upper != 'B' and ...

解释器将
'B'
'C'
等视为独立的条件,它们的计算结果均为
True
,因此您的
if
语句始终为True。

您使用的是
错误的方式。(有关正确的方法,请参见)

一种可能的快捷方式是使用安全壳检查:

while Upper not in ('A', 'B', 'C', 'D', 'E'):
    ...

您正在以错误的方式使用
。(有关正确的方法,请参见)

一种可能的快捷方式是使用安全壳检查:

while Upper not in ('A', 'B', 'C', 'D', 'E'):
    ...

“!=”优先于“或”。您的代码真正做的是:

while (Upper != 'A') or 'B' or 'C' or 'D' or 'E':
这总是正确的

请尝试以下方法:

while not Upper in ( 'A', 'B', 'C', 'D', 'E' ):

“!=”优先于“或”。您的代码真正做的是:

while (Upper != 'A') or 'B' or 'C' or 'D' or 'E':
这总是正确的

请尝试以下方法:

while not Upper in ( 'A', 'B', 'C', 'D', 'E' ):

我不是python程序员,但是你的代码没有办法跳出循环。如果用户没有键入有效的密钥,那么您只是在提示并继续循环。如果entryrow不等于您的while中的某个值,您可能会将loop@Ninja_Noob:退出循环的方法是在
while
语句中。如果你不懂这门语言,你怎么能提供好的建议呢?伊森。。。你说得对我只是在看代码。。。你只需要理解逻辑就能解决这个问题。代码是说如果它不等于a、b或c。。。。如果它等于a,那么它就不等于b。我认为你需要用ands替换or。Ethan如果你是程序员,逻辑就是逻辑,不管语言如何。我不是python程序员,但你的代码没有办法跳出循环。如果用户没有键入有效的密钥,那么您只是在提示并继续循环。如果entryrow不等于您的while中的某个值,您可能会将loop@Ninja_Noob:退出循环的方法是在
while
语句中。如果你不懂这门语言,你怎么能提供好的建议呢?伊森。。。你说得对我只是在看代码。。。你只需要理解逻辑就能解决这个问题。代码是说如果它不等于a、b或c。。。。如果它等于a,那么它就不等于b。我认为你需要用ands替换or。Ethan如果你是程序员,逻辑就是逻辑,不管语言如何。