【发布时间】:2021-12-21 20:05:37
【问题描述】:
当我运行我的代码时,我得到“NameError: name ‘mean’ is not defined”。当我尝试调用我的函数“calculateVariance(mean, nums)”时出现此错误。我似乎无法弄清楚如何在不必更改“calculateVariance(mean, nums)”函数的情况下定义“均值”.. 如果这有意义..
代码如下:
import math
import matplotlib.pyplot as plt
def readFile(file_name):
with open('data_1.txt', 'r') as DataOne:
nums = DataOne.read()
print(nums)
return nums
def calculateMean(nums):
sumOfNums = 0
for i in range(len(nums)):
sumOfNums += i
mean = sumOfNums//len(nums)
print("The mean is : ", mean)
return mean
def calculateVariance(mean, nums):
squaredDifferences = 0
for number in nums:
difference =mean - number
squaredDiff = difference ** 2
squaredDifferences += squaredDiff
variance = squaredDifferences // (len(nums)-1)
print(" The variance is : ", variance)
return variance
def calculateSD(variance):
square_root = math.sqrt(number)
StandDev = square_root(variance)
print("Standard Deviation is : ", StandDev)
return StandDev
def showHistogram(nums):
num_bins = 10
plt.hist(listOfNums, num_bins)
plt.show()
nums = readFile('data_1.txt')
calculateMean(nums)
calculateVariance(mean, nums)
calculateSD(variance)
【问题讨论】:
-
请始终发布带有完整回溯的整个错误消息。您的缩进也不正确。这是复制/粘贴错误还是您的实际代码?
return语句应该缩进,以便它们属于函数。 -
如果您在函数
calculateMean()中定义mean,它将仅对该函数是本地的。这意味着它不能在函数之外使用。假设缩进问题只是一个拼写错误,您应该使用来自calculateMean()的返回值——类似于mean = calculateMean(nums)。 -
仅供参考,如果您使用
pandas包,这些只是单行调用:nums.mean()、nums.var()
标签: python mean standard-deviation variance