Python:执行正确命令后循环无法终止的问题解决
问题解决
你的代码存在两个关键问题,导致输入正确答案后程序无法正常停止:
1. 条件判断语法错误
原代码中if和elif的条件写法逻辑错误,例如if "1" or "Even&Odd" or ... in gname,这里的"1"是一个非空字符串,在布尔逻辑中会被直接判定为True,导致整个条件永远成立——不管你输入什么内容,都会进入第一个分支。正确的写法是每个选项都单独判断是否存在于输入内容中。
2. 多余的函数返回值
函数末尾的return choosegame返回的是函数对象本身,这完全没必要,只会造成逻辑混淆,直接去掉即可。函数执行到break跳出循环后,会自然结束,程序也就停止运行。
修正后的代码:
EvenOdd = 1 def choosegame(): while True: global gname gname = input(""" Which game would you like to play? 1.Even&Odd OR 2.Three lines Type the number of the game to start >>>""") # 修正条件判断逻辑 if "1" in gname or "Even&Odd" in gname or "even&odd" in gname or "evenodd" in gname or "even" in gname or "odd" in gname: gname = EvenOdd print("odd even game passed") break elif "2" in gname or "Three" in gname or "three" in gname or "Lines" in gname or "lines" in gname: print("threeline game passes") break else: print("wrong word") choosegame()
内容的提问来源于stack exchange,提问作者Keshav Sharma
相关产品推荐
相关产品推荐

