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

如何通过for循环在函数中计算方差?代码计算方差结果异常的排查求助

帮你修复方差计算代码的问题

我帮你找出代码里的几个关键错误,这就是你得不到期望结果的原因:

错误点分析

  • 错误的运算符使用:Python里没有--和++这类自增自减运算符。你写的numbers -- mean_result会被解析成numbers - (-mean_result),也就是numbers + mean_result,完全偏离了“计算数值与均值差值”的逻辑;而squaredDifferences = squaredDiff ++ difference同样错误,这里你需要累加的是每个数值的平方差,不是平方差加原始差值。
  • 错误的累加逻辑:当前代码没有正确累加所有平方差,而是每次用当前平方差加差值覆盖总和,正确的做法是把每个平方差逐步加到总和里。
  • 整数除法导致精度丢失://是Python的整数除法运算符,会直接截断小数部分,而方差是浮点数结果,应该用普通除法/。

修正后的代码

import math
import matplotlib.pyplot as plt

def calculateVariance(mean_result, nums):
    squaredDifferences = 0.0
    for number in nums:  # 变量名改成number更贴合单个元素的含义
        difference = number - mean_result  # 修正减法运算符
        squaredDiff = difference ** 2.0
        squaredDifferences += squaredDiff  # 正确累加平方差总和
    # 用普通除法计算样本方差(除以n-1)
    variance = squaredDifferences / (len(nums)-1)
    print("The variance is : ", variance)
    return variance

# 传入你已计算好的mean_result和nums即可
# variance = calculateVariance(mean_result, nums)

修改后运行代码,应该就能得到你期望的102.3375110000002这个结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 01:49:06