我无法打破这个 while 循环
I can't break this while loop
我有一个作业需要完成一个动作,直到输入为 'quit'、'Quit'、'q' 或 'Q'。我一直在尝试这个:
while variable != 'quit' or 'Quit' or 'q' or 'Q':
# do stuff
但是,当输入这些字符串中的任何一个时,while 循环仍然会执行!我试过其他方法,比如 if 语句,但它只是超时。我怎样才能正确地打破循环?
试试这个:
while (variable != "quit" and variable != "q" and variable != "Q" and variable != "Quit"):
你不能做变量 != "q" 或 "Q" 等等
要走的路大概是这样的:
while str(variable).upper() not in ['QUIT', 'Q']:
这样,您可以在一个地方列出所有允许用户退出的值,并且忽略大小写(大写或小写)。
如果我没有理解错的话,你会看到类似下面的内容:
while variable != 'quit' or 'Quit' or 'q' or 'Q':
# do stuff
variable = input("")
(顺便说一句 - 欢迎来到 Stack Overflow!正如另一位用户在评论中提到的那样 - 请提供代码示例;这将帮助潜在的回答者真正知道出了什么问题以及你想做什么。)
之所以它永远不会中断是因为 Python 解释器实际看到的是:
while (variable != 'quit') or ('Quit') or ('q') or ('Q'):
# do stuff
variable = input("")
在 Python 中,非空字符串将计算为真 - 如果您在 Python 解释器中尝试 bool('q')
,您将得到 True
。这意味着解释器是 运行:
while (variable != 'quit') or True or True or True:
# do stuff
variable = input("")
这显然永远不会中断。您需要做的是检查所有选项; Kind Stranger 有一个解决方案,但更明确地说,您可以尝试
while variable not in ('quit', 'Quit', 'q', 'Q'):
我有一个作业需要完成一个动作,直到输入为 'quit'、'Quit'、'q' 或 'Q'。我一直在尝试这个:
while variable != 'quit' or 'Quit' or 'q' or 'Q':
# do stuff
但是,当输入这些字符串中的任何一个时,while 循环仍然会执行!我试过其他方法,比如 if 语句,但它只是超时。我怎样才能正确地打破循环?
试试这个:
while (variable != "quit" and variable != "q" and variable != "Q" and variable != "Quit"):
你不能做变量 != "q" 或 "Q" 等等
要走的路大概是这样的:
while str(variable).upper() not in ['QUIT', 'Q']:
这样,您可以在一个地方列出所有允许用户退出的值,并且忽略大小写(大写或小写)。
如果我没有理解错的话,你会看到类似下面的内容:
while variable != 'quit' or 'Quit' or 'q' or 'Q':
# do stuff
variable = input("")
(顺便说一句 - 欢迎来到 Stack Overflow!正如另一位用户在评论中提到的那样 - 请提供代码示例;这将帮助潜在的回答者真正知道出了什么问题以及你想做什么。)
之所以它永远不会中断是因为 Python 解释器实际看到的是:
while (variable != 'quit') or ('Quit') or ('q') or ('Q'):
# do stuff
variable = input("")
在 Python 中,非空字符串将计算为真 - 如果您在 Python 解释器中尝试 bool('q')
,您将得到 True
。这意味着解释器是 运行:
while (variable != 'quit') or True or True or True:
# do stuff
variable = input("")
这显然永远不会中断。您需要做的是检查所有选项; Kind Stranger 有一个解决方案,但更明确地说,您可以尝试
while variable not in ('quit', 'Quit', 'q', 'Q'):