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

Python求最大最小值程序:双位数被拆分为单个数字的问题求助

问题分析与修复方案

核心问题

你的代码出错的关键原因是错误地遍历了输入的字符串num,而非使用转换后的整数intnum:

  • 当输入像"10"这样的多位数时,num是字符串类型,for size in (num)会把它拆成单个字符'1'和'0',后续的大小比较都是基于字符的ASCII值,不是数字的实际数值。这就导致程序把'0'当成了最小值,把'6'当成了最大值。
  • 其实你已经通过int(num)得到了正确的整数intnum,但完全没用到这个数值去做比较逻辑。

修复后的代码

删掉多余的for循环,直接用转换好的intnum来更新最大值和最小值:

largest = None
smallest = None
while True: 
    num = input("Enter a number: ")
    if num == "done":
        break
    try:
        intnum = int(num)
    except ValueError:
        print('Invalid')
        continue
    # 初始化最大值和最小值(仅第一次有效输入时执行)
    if largest is None: 
        largest = intnum
    if smallest is None: 
        smallest = intnum
    # 更新最大值
    if intnum > largest:
        largest = intnum
    # 更新最小值
    if intnum < smallest:
        smallest = intnum

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

测试结果

输入1、3、10、2、6后,程序会正确输出:

Maximum is 10
Minimum is 1

内容的提问来源于stack exchange,提问作者S. M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:35:15