2016-02-04 52 views
-1

我的程序旨在計算用戶給出的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) 
+3

發佈的問題或錯誤的想法 – essramos

回答

0

你的代碼有幾個錯誤。 ,你可以很容易找到通過閱讀你的代碼產生errormessages:

  1. 在功能平均

    插入asigning它之前,你正在使用它的行total = 0

  2. 名單追加

    不要例如 sqDiff[x] = (values[x] - av)**2 使用您可以使用字典的但不是列表時,做到這一點!由於python無法確定列表索引將被連續分配,因此請使用sqDiff.append(...)

  3. 不要連接字符串與浮動。我推薦閱讀PEP 0498 (https://www.python.org/dev/peps/pep-0498/),它爲您提供瞭如何進行字符串可以/應該在Python中格式化