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

Python代码可正常输出列表最大值,却无法打印列表负数是什么原因?

问题原因
  • 核心bug出在输入校验逻辑:Python的str.isnumeric()方法仅对纯数字字符返回True,带负号的字符串(例如"-12")会被判定为非数值,你输入的所有负数根本没有被添加到user_values列表中,后续自然无法打印。
  • 附带的逻辑漏洞:你初始化最大值maxim为0,如果用户输入的所有数值都是负数,最终输出的最大值会错误返回0,而非列表内的实际最大值。
  • 潜在报错风险:如果用户没有输入任何有效数值就输入q退出,调用min(user_values)会直接抛出空序列报错。
修复代码示例
user_input = ''
user_values = []
while True:
    user_input = input('input:')
    if user_input.lower() == 'q':
        break
    # 改用异常捕获处理正负整数输入
    try:
        num = int(user_input)
        user_values.append(num)
    except ValueError:
        print("请输入有效整数或q退出")

# 非空判断避免报错
if user_values:
    # 直接用内置max、min函数更简洁,无需自己遍历计算
    maxim = max(user_values)
    print( "the maximum value in the list is : " , maxim)

    minimum_value = min(user_values)
    print( "the minimum value in the list is : " , minimum_value)

    print("the negative values are:")
    for value in user_values:
        if value < 0:
            print(value)
else:
    print("未输入任何有效数值")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:54:07