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

Python实现:读取用户输入整数并计算去最值后的平均值

计算去除最大最小值后的平均值问题解决

需求说明

当前程序仅能计算基础平均值,需要补充最大值、最小值的处理逻辑,具体要求:

  • 持续读取用户输入的整数,直到输入-1停止
  • 若输入的有效数值数量≥3,计算并输出去除最大值和最小值后的平均值(总和扣除最大、最小值后,除以剩余数值的数量)
  • 若有效数值数量<3,不输出任何内容

现有代码

value = int(input("Value: "))
count = 0
sum = 0
max = 0
min = 0

while value != -1:
    sum += value
    count += 1
    value = int(input("Value: "))

if count >= 3:
    average = sum / count
    print ("Middle average =", average - max - min)

修改后的代码

value = int(input("Value: "))
count = 0
sum_total = 0
max_val = None
min_val = None

while value != -1:
    sum_total += value
    count += 1
    # 更新最大值
    if max_val is None or value > max_val:
        max_val = value
    # 更新最小值
    if min_val is None or value < min_val:
        min_val = value
    value = int(input("Value: "))

if count >= 3:
    middle_average = (sum_total - max_val - min_val) / (count - 2)
    print(f"Middle average = {middle_average}")

关键修改点

  • 变量名优化:将sum改为sum_total(避免覆盖Python内置sum()函数),max/min改为max_val/min_val(避免覆盖内置max()/min()函数)
  • 初始值修正:把max_val和min_val初始化为None,可以正确处理输入负数的场景(原代码初始为0会导致负数输入时最大值/最小值判断错误)
  • 循环内更新最值:每次输入有效数值时,判断并更新当前的最大值和最小值:
    • 首次输入时直接赋值
    • 后续输入时与当前最值比较,符合条件则更新
  • 平均值计算修正:正确逻辑为(总和 - 最大值 - 最小值) / (总数 - 2),原代码的average - max - min是错误的计算方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:57:28