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

使用Python numpy计算用户输入区间内大于10的偶数均值问题求助

代码问题排查
  • 语法错误1:sum_even 函数体缩进混乱,count 定义、return 语句均没有对齐到正确的函数缩进层级,运行会直接报错
  • 语法错误2:函数定义名为sum_even,但打印时调用了不存在的function1,命名不匹配
  • 逻辑错误1:range(a, b, 1) 是左闭右开区间,上界b不会被纳入遍历范围,比如示例输入的上界16会被漏掉
  • 逻辑错误2:缺少「数值大于10」的判断条件,所有偶数都会被纳入计算,和需求不符
  • 逻辑错误3:当前只实现了符合条件偶数的总和计算,没有统计符合条件的数值个数,无法得到平均值
  • 冗余问题:导入了numpy库但完全没有使用,没有发挥numpy的向量化计算优势
修正方案

方案1:修改原循环逻辑实现

lower = int(float(input('Waiting for input: ')))
upper = int(float(input('Waiting for input: ')))

def avg_even_gt10(a, b):
    total = 0
    count = 0
    # 调整range右边界为b+1,包含上界
    for i in range(a, b+1):
        # 同时判断是偶数、且大于10
        if i % 2 == 0 and i > 10:
            total += i
            count += 1
    # 避免除以0,无符合条件数值时返回0
    return total / count if count != 0 else 0

print(f"{avg_even_gt10(lower, upper):.2f}")

测试示例:输入下界8、上界16时,符合条件的偶数为12、14、16,平均值为(12+14+16)/3=14,和预期结果一致。

方案2:使用numpy实现(更简洁高效)

import numpy as np

lower = int(float(input('Waiting for input: ')))
upper = int(float(input('Waiting for input: ')))

# 生成上下界范围内的所有整数
arr = np.arange(lower, upper+1)
# 筛选出大于10的偶数
target_arr = arr[(arr > 10) & (arr % 2 == 0)]
# 计算平均值,无符合条件值时返回0
avg = target_arr.mean() if len(target_arr) > 0 else 0

print(f"{avg:.2f}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:48:03