Python入门:输入'exit'无法终止循环的问题求助
Python文字游戏exit终止循环问题解决建议
嘿,我看你在做文字RPG游戏的时候碰到没法用exit终止循环的问题了,先看看你贴的这段获取姓名的代码里的小问题,再一步步给你讲怎么搞定退出逻辑~
先修正你当前的姓名获取代码
你写的这段代码有个明显的小错误:
def name(): input("Hi, what's your name?") if len(name) < 1: #检查...的内容
- 首先,
input()的返回值没存到变量里,等于白问了用户的名字; - 其次,
len(name)是在求函数对象name的长度,这完全不是你要的“检查用户输入长度”的逻辑,肯定会出问题。
给你加了exit退出逻辑的修正版
先把姓名获取的函数改成支持exit退出的版本,再给你补一个游戏主循环的示例:
修正后的姓名获取函数
def get_player_name(): while True: user_input = input("Hi, what's your name? (输入'exit'可退出游戏) ") # 先判断是否输入exit,不区分大小写 if user_input.strip().lower() == 'exit': return None # 返回None表示用户选择退出 # 再检查输入是否为空 if len(user_input.strip()) >= 1: return user_input.strip() else: print("别输入空名字呀,请重新输入!")
带exit终止逻辑的游戏主循环
def start_rpg(): print("欢迎来到文字RPG世界!") player_name = get_player_name() # 如果用户输入exit退出了姓名输入,直接结束游戏 if not player_name: print("游戏已退出,下次再来冒险吧!") return print(f"很高兴认识你,{player_name}!现在开始你的冒险~") # 游戏主循环 while True: action = input("\n请输入你的行动指令:(输入'exit'可随时退出) ") # 同样判断exit,不区分大小写 if action.strip().lower() == 'exit': print("冒险结束,感谢游玩!") break # 终止循环,结束游戏 # 这里可以加你自己的游戏逻辑,比如处理用户的行动 print(f"你选择了「{action}」,继续向前探索...") # 启动游戏 start_rpg()
关键要点总结
- 每次接收用户输入时,记得用
strip()去掉前后空格,再用lower()转成小写,这样不管用户输Exit/EXIT/exit都能识别成退出指令; - 在循环里判断到
exit时,用break直接终止当前循环(如果是在函数里可以返回特定值,再在主逻辑里判断结束); - 一定要把
input()的返回值存到变量里,不然根本拿不到用户输入的内容!
内容的提问来源于stack exchange,提问作者Bstykemain
相关产品推荐
相关产品推荐

