2024-04-19 13:37:47 发布
网友
我有一个作业,我需要完成一个动作,直到输入是'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 variable != 'quit' or 'Quit' or 'q' or 'Q': # do stuff variable = input("")
(顺便说一下-欢迎使用堆栈溢出!正如另一位用户在评论中所提到的,请提供一个代码示例;它将帮助潜在的回答者真正了解出了什么问题,以及您正在尝试做什么。)
它从不中断的原因是因为Python解释器实际看到的是:
while (variable != 'quit') or ('Quit') or ('q') or ('Q'): # do stuff variable = input("")
在Python中,非空字符串的计算结果将为true—如果在Python解释器中尝试bool('q'),将得到True。这意味着解释器正在运行:
bool('q')
True
while (variable != 'quit') or True or True or True: # do stuff variable = input("")
很明显,它永远不会断。您需要做的是检查所有选项;Kind陌生人有一个解决方案,但更明确地说,您可以尝试
while variable not in ('quit', 'Quit', 'q', 'Q'):
方法可能是这样的:
while str(variable).upper() not in ['QUIT', 'Q']:
这样,您就可以在一个地方列出允许用户退出的所有值,并且忽略大小写(大写或小写)。你知道吗
试试这个:
你不能这么做!=“q”或“q”等
如果我理解正确的话,你会得到如下结果:
(顺便说一下-欢迎使用堆栈溢出!正如另一位用户在评论中所提到的,请提供一个代码示例;它将帮助潜在的回答者真正了解出了什么问题,以及您正在尝试做什么。)
它从不中断的原因是因为Python解释器实际看到的是:
在Python中,非空字符串的计算结果将为true—如果在Python解释器中尝试
bool('q')
,将得到True
。这意味着解释器正在运行:很明显,它永远不会断。您需要做的是检查所有选项;Kind陌生人有一个解决方案,但更明确地说,您可以尝试
方法可能是这样的:
这样,您就可以在一个地方列出允许用户退出的所有值,并且忽略大小写(大写或小写)。你知道吗
相关问题 更多 >
编程相关推荐