You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:56:35