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

如何在Python猜数字程序中处理'done'输入以终止无限循环?

解决方法

你的代码里finished变量是程序启动时就获取的输入,没法在猜数字的过程中响应用户输入的“done”。要实现输入“done”就终止循环,调整逻辑如下:

import random  # 别忘了导入random模块,原代码漏了这一步

a = int(input("Put in the lower number: "))
b = int(input("Put in the higher number: "))
number = random.randint(a, b) 
guessCache = -1
running = True

while running:
    user_input = input('Guess: ')
    # 优先判断是否输入了终止指令
    if user_input.strip().lower() == "done":
        print("游戏结束")
        running = False
        continue
    # 处理数字输入逻辑
    try:
        guess = int(user_input)
        if guess == guessCache and guessCache != -1:
            print("Same")
        elif guess > number:
            print("Smaller")
        elif guess < number:
            print("Larger")
        elif guess == number:
            print("Congratulations! You found my number.")
            running = False
        guessCache = guess
    except ValueError:
        print("Not a number!") 

关键调整说明:

  • 每次先获取用户输入的原始字符串,优先判断是否为done(strip()和lower()是为了兼容大小写、前后空格的输入,比如“ Done ”也能被识别)
  • 移除了原代码中无实际作用的finished变量
  • 捕获异常时指定ValueError,避免无差别捕获所有异常(原代码的except:写法不够严谨)
  • 补充了random模块的导入(原代码缺少这一步会直接报错)

内容的提问来源于stack exchange,提问作者Proxie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:30:50