调用函数时如何定义入参变量?调用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
相关产品推荐
相关产品推荐

