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

调用函数时如何定义入参变量?调用calculateVariance提示mean未定义如何解决

问题解决方法

报错根因

你调用calculateMean(nums)时函数已经返回了均值结果,但没有将返回值赋值给全局作用域的mean变量,因此调用calculateVariance(mean, nums)时Python找不到mean的定义,触发NameError。

修复方案(完全不修改calculateVariance函数)

仅需调整主调用段的代码,接住函数返回的均值、方差变量即可:

nums = readFile('data_1.txt')
# 新增变量赋值,接收calculateMean返回的均值
mean = calculateMean(nums)
# 新增变量赋值,接收calculateVariance返回的方差,避免后续calculateSD调用也触发NameError
variance = calculateVariance(mean, nums)
calculateSD(variance)

代码其他潜在报错修复建议

你的代码还有多处逻辑错误会导致后续运行失败,可同步修复:

  • readFile函数:缩进错误、读入的字符串未转数字列表、参数file_name未生效,修复后示例:
def readFile(file_name):
    with open(file_name, 'r') as DataOne:
        content = DataOne.read()
    # 按空格/换行分割后转整数,可根据你的实际数据格式调整分割规则
    nums = list(map(int, content.strip().split()))
    print(nums)
    return nums
  • calculateMean函数:循环累加的是索引而非数值,修复后:
def calculateMean(nums):
    sumOfNums = 0
    for num in nums:
        sumOfNums += num
    mean = sumOfNums//len(nums)
    print("The mean is : ", mean)
    return mean
  • calculateSD函数:变量未定义、方法调用逻辑错误,修复后:
def calculateSD(variance):
    StandDev = math.sqrt(variance)
    print("Standard Deviation is : ", StandDev)
    return StandDev
  • showHistogram函数:参数引用错误,修复后:
def showHistogram(nums):
    num_bins = 10
    plt.hist(nums, num_bins)
    plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:27:05