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

Python程序需循环运行但仅执行一次,无法反复提示用户输入如何解决

问题根因

你现有代码的核心问题如下:

  • 没有添加循环结构,程序只会执行一次逻辑就结束,不会重复请求用户输入
  • 缺少接收用户输入的input()调用逻辑
  • try代码块中仅执行了float(num)转换,但没有将转换后的数值重新赋值,num仍是字符串类型,后续做数值比较会直接报错
  • except代码块仅写了提示文本,没有调用print输出,无效输入时不会展示提示
  • 最小值初始值设为0的逻辑有缺陷,如果用户输入的所有数字都是负数,最终得到的最小值会是错误的0
修复后可运行的完整代码
# 初始化最大最小值为None,避免初始固定值干扰结果
largest = None
smallest = None

while True:
    # 每次循环提示用户输入
    num_input = input("请输入整数,输入done结束: ")
    # 输入为done时跳出循环
    if num_input == 'done':
        break
    # 尝试转换为数值
    try:
        num = int(num_input)
    except:
        print("invalid input")
        continue
    # 第一次有效输入直接赋值最值
    if largest is None:
        largest = num
        smallest = num
    else:
        if num > largest:
            largest = num
        if num < smallest:
            smallest = num

# 循环结束输出结果
print("最大值是:", largest)
print("最小值是:", smallest)
逻辑说明
  • 用while True构建无限循环,保证会反复提示用户输入,直到匹配到done才跳出
  • 最大最小值初始设为None,第一次有效输入时直接赋值,避免了初始值为0导致的负数输入结果错误问题
  • try块转换成功后才执行后续比较逻辑,转换失败直接打印提示并进入下一轮循环,不会执行错误的比较操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:06:02