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

如何让Python程序持续重复提问并正确处理后续输入?

问题修复:持续重复处理用户输入的Python程序

你的代码问题出在ans变量的生命周期上——第一次正确输入后,ans被设为'true',后续外层循环再执行时,内层while ans == 'wrong'的条件不成立,新输入的内容根本没进入判断逻辑,自然只会重复提问。

下面是两种修复方案:

方案一:基于原代码修改

把ans的初始化移到外层循环内部,每次循环都重置这个变量,确保内层判断能正常触发:

alive = True
while alive == True:
    ans = 'wrong'  # 每次外层循环开始重置ans
    answer = input("""

----What do you want to do?(walk, or rest)----

    """)
    while ans == 'wrong':
        if answer == 'walk':
            print("nice")
            ans = 'true'
        elif answer == 'rest':
            print("you slept with your monsters")
            ans = 'true'
        else:
            print("Invalid Answer. Walk or Rest")
            answer = input("""

----What do you want to do?(walk, or rest)----

    """)

方案二:简化逻辑(更推荐)

去掉多余的ans和alive变量,用无限循环配合条件判断,代码更简洁清晰:

while True:
    answer = input("""

----What do you want to do?(walk, or rest)----

    """).strip()  # strip()去掉输入前后的空格,避免误判
    if answer == 'walk':
        print("nice")
    elif answer == 'rest':
        print("you slept with your monsters")
    else:
        print("Invalid Answer. Walk or Rest")
        # 这里不需要额外输入,外层循环会自动重新提问

关键修改点说明

  1. 方案一中,把ans = 'wrong'放到外层循环里,每次用户完成一次有效输入后,下一轮循环会重新初始化ans,保证内层while能处理新的输入。
  2. 方案二中,直接用while True实现无限循环,每次输入后直接判断,无效输入会提示后自动进入下一轮循环重新提问,逻辑更直观,还避免了多余变量的干扰。

内容的提问来源于stack exchange,提问作者Gabriel Floyd Alinday

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 07:48:44