如何终止Python中的循环?附代码寻求解决方案
嘿,我来帮你搞定这个循环终止的问题~
首先得指出你代码里的核心问题:外层的while 1是个无条件的无限循环,内层for循环里的break只能跳出当前的for循环,并不会影响外层的while。所以每次for循环跑完后,while会立刻重新执行,导致程序一直打印khvb停不下来。
下面给你几个不同场景下的解决方案,你可以根据自己的实际需求选:
方案1:用标志变量控制循环(最通用的做法)
如果你的需求是反复检查直到找到匹配项(比如quests内容会动态更新),可以设置一个布尔标志来控制while的运行:
ciao = "revoir bye see you" ciao = ciao.lower().split() quests = "revoir mam bak kio" quests = quests.lower().split() keep_running = True while keep_running: match_found = False # 遍历quests里的每个词 for word in quests: if word in ciao: match_found = True break # 找到匹配,跳出内层for循环 if match_found: print("找到匹配项啦,终止循环!") keep_running = False # 修改标志,让while循环停止 else: print('khvb') # 如果你希望没找到匹配时也终止循环,就把下面这行注释打开 # keep_running = False
方案2:找到匹配直接终止程序(简单场景适用)
如果你的逻辑是找到匹配后就直接结束整个程序,可以用sys.exit()(需要先导入sys模块):
import sys ciao = "revoir bye see you" ciao = ciao.lower().split() quests = "revoir mam bak kio" quests = quests.lower().split() while 1: for word in quests: if word in ciao: print("找到匹配,直接退出程序~") sys.exit() # 终止整个程序 print('khvb')
方案3:去掉多余的while循环(如果只需要检查一次)
看你的代码,quests是固定的,如果你只是要检查一次quests里有没有词在ciao中,那完全不需要外层的while循环,直接这样写更简洁:
ciao = "revoir bye see you" ciao = ciao.lower().split() quests = "revoir mam bak kio" quests = quests.lower().split() match_found = False for word in quests: if word in ciao: match_found = True break if match_found: print("找到匹配项") else: print('khvb')
你可以根据自己的实际需求选择合适的方案哦~
内容的提问来源于stack exchange,提问作者Oussama Bamaârouf
相关产品推荐
相关产品推荐

