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

Python多整数输入求均值与最大值程序报错求助

代码错误排查:整数平均值与最大值计算问题

你的代码有两个核心问题导致输出不符合预期:

1. 最大值判断逻辑完全错误

你把最大值的比较代码写在了for循环外面,这意味着程序只会拿最后一个输入的数字和初始的max值比较,根本没遍历所有数字找最大值。比如输入15 20 0 5时,循环结束后n的值是'5',完全没对前面的20做比较判断,自然得不到正确最大值。

2. 最大值初始值设置不合理

你把max初始化为-1,如果输入的所有数字都是负数(比如-3 -4 -5),那-1会比这些数都大,最终输出的最大值会是错误的-1,而不是实际的最大值-3。


修正后的代码(两种写法)

写法1:利用Python内置函数(简洁高效)

input_str = input()
num_list = [int(num) for num in input_str.split()]

total = sum(num_list)
average = total / len(num_list)
max_num = max(num_list)

# 按照示例要求取平均值的整数部分
print(int(average), max_num)

写法2:手动遍历实现(更直观展示逻辑)

input_str = input()
num_strs = input_str.split()

# 处理空输入的边界情况
if not num_strs:
    print("请输入至少一个整数")
    exit()

total = 0
# 用第一个数字初始化最大值,避免负数问题
max_num = int(num_strs[0])

for s in num_strs:
    num = int(s)
    total += num
    # 每次循环都比较更新最大值
    if num > max_num:
        max_num = num

average = total / len(num_strs)
print(int(average), max_num)

修正说明

  • 把字符串转整数的操作统一处理,避免重复转换;
  • 最大值的比较逻辑放到for循环内部,确保每个数字都参与比较;
  • 用输入的第一个数字初始化最大值,解决负数输入的错误;
  • 增加了空输入的边界处理,让程序更健壮。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:52:22