我的程序用于计算用户给出的5个值的标准偏差。在for循环中获取输入时,我的代码存在问题。那是为什么?
givenValues = []
def average(values):
for x in range(0, 6):
total = total + values[x]
if(x==5):
average = total/x
return average
def sqDiff(values):
totalSqDiff = 0
sqDiff = []
av = average(values)
for x in range(0,6):
sqDiff[x] = (values[x] - av)**2
totalSqDiff = totalSqDiff + sqDiff[x]
avSqDiff = totalSqDiff / 5
SqDiffSquared = avSqDiff**2
return SqDiffSquared
for counter in range(0,6):
givenValues[counter] = float(input("Please enter a value: "))
counter = counter + 1
sqDiffSq = sqDiff(givenValues)
print("The standard deviation for the given values is: " + sqDiffSq)
答案 0 :(得分:0)
您的代码中存在多个错误。 通过阅读代码生成的错误消息,您可以轻松找到它:
在函数平均值
中插入第total = 0
行
你在使用它之前使用它。
列出追加
请勿使用例如
sqDiff[x] = (values[x] - av)**2
你可以在使用dict而不是列表时执行此操作!由于python无法确定是否会连续分配列表索引而是使用sqDiff.append(...)
。
不要使用浮点数连接字符串。我建议阅读PEP 0498 (https://www.python.org/dev/peps/pep-0498/),它让你了解如何在python中形成字符串