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

计算用户输入总和、最值的程序在学校编译器报错,求替代实现方案

现有代码的问题排查

  • 边界case未处理:如果首次输入就是X,此时list1为空,average、min_value、big_value三个变量未定义,执行打印语句会直接抛出NameError,大概率是编译器判定错误的核心原因
  • 输出结果不符合需求:需求要求按输入顺序输出所有输入值,现有代码使用了sorted(list1),会将输入结果排序后输出,和要求的顺序不一致
  • 冗余计算:每次新增输入都重新计算全列表的最大值、最小值、平均值,没有必要,会增加不必要的性能损耗
  • 输入兼容性不足:未处理用户输入小写x的场景,若测试用例存在小写输入会直接触发int()转换报错
  • 提示语冗余:如果学校编译器的校验是严格匹配输出内容,input("Enter number: ")打印的提示语可能会被判定为多余输出,干扰结果校验

优化后的实现方案

num_list = []
while True:
    # 若校验不需要输入提示,可直接修改为input_content = input().strip()
    input_content = input("Enter number: ").strip()
    if input_content.upper() == 'X':
        break
    # 可选增加输入合法性校验,避免非数字输入报错
    try:
        num = int(input_content)
        num_list.append(num)
    except ValueError:
        continue

# 处理空输入的边界情况
if not num_list:
    print("result:[]")
    print("average:0.00")
    print("min:0.00")
    print("max:0.00")
else:
    sum_val = sum(num_list)
    avg = sum_val / len(num_list)
    min_val = min(num_list)
    max_val = max(num_list)
    # 按输入顺序输出,不做排序
    print(f"result:{num_list}")
    print(f"average:{avg:.2f}")
    print(f"min:{min_val:.2f}")
    print(f"max:{max_val:.2f}")

其他可选编码思路

  • 低内存占用实现(无需存储全量输入,适合超大量输入场景):
count = 0
sum_val = 0
min_val = float('inf')
max_val = float('-inf')
num_list = [] # 若不需要输出输入序列可直接删除该变量
while True:
    input_content = input().strip().upper()
    if input_content == 'X':
        break
    num = int(input_content)
    count += 1
    sum_val += num
    if num < min_val:
        min_val = num
    if num > max_val:
        max_val = num
    num_list.append(num)

if count == 0:
    # 空输入处理逻辑和上方优化方案一致
    pass
else:
    avg = sum_val / count
    # 输出逻辑和上方优化方案一致
  • Python 3.8+ 简化写法(使用海象运算符缩减循环代码):
num_list = []
while (input_content := input().strip().upper()) != 'X':
    num_list.append(int(input_content))
# 后续计算、输出逻辑和上方优化方案一致

通用校验收敛建议

  • 严格匹配输出格式:包括空格、符号、小数点位数,不要有多余的打印内容
  • 覆盖所有边界case:空输入、单输入、多输入、合法/非法输入的处理都要提前考虑
  • 避免未定义变量:所有在循环内赋值、循环外使用的变量,都要在循环外提前初始化默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:24:09