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

获取用户输入最大值与最小值结果异常,请求代码排查

代码错误分析与修正

错误点说明

  • 使用字符串而非整数做数值比较
    你代码里直接拿输入的字符串num和largest、smallest对比,但字符串比较是按字符ASCII码来的,不是数值大小。比如输入"10"和"2","10" < "2"会返回True,这显然和实际数值大小逻辑相反,导致最值判断完全错误。必须用转换后的整数ival来做比较。

  • continue语句导致最小值逻辑被跳过
    处理最大值的分支里,当largest初始为None时,赋值后直接continue,直接进入下一轮循环,后面处理最小值的代码根本没机会执行。第一次输入的数字永远不会被赋值给smallest,后续输入也可能因为这个逻辑跳过最小值判断,最终smallest要么是None,要么得到错误结果。

修正后的代码

largest = None
smallest = None

while True:
    num = input("Enter a number: ")
    if num == "done":
        break

    try:
        ival = int(num)
    except:
        print("Invalid input")
        continue

    # 更新最大值
    if largest is None: 
        largest = ival
    elif ival > largest:
        largest = ival

    # 更新最小值(移除continue,确保每次都执行)
    if smallest is None: 
        smallest = ival
    elif ival < smallest:
        smallest = ival

print("Maximum is", largest)
print("Minimum is", smallest)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:02:07