2016-11-18 70 views
-1

我工作的一個簡單的數學解算,我創建了一個目錄,其中用戶的輸入,將存儲:目錄數學錯誤與[I]

data = { 
     'name': {1: '', 2: '', 3: '', 4: '', 5: '', 6: '', 7: ''},  
     'quantity': {1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}, 
     'soldin': {1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}, 
     'price': {1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}, 
     'yld': {1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}, 
     'apc': {1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}, 
     'epc': {1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}, 
     'exc': {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0} 
     } 

我也有這將解決問題的問題的代碼(第i是基於有多少數據的程序中設置設置輸入的用戶):

i = 2 
while(i >=0): 
    first = data['soldin'][i] 
    second = data['price'][i] 
    apco = float(data[first][i])/float(doug) 
    epco = apco/data['yld'][i] 
    i = i - i 

但是,它提供了以下錯誤:

Traceback (most recent call last): 
    File "python", line 31, in <module> 
KeyError: 0 
+5

您的字典沒有關鍵字'0'的條目,它們都從'1'開始。所以也許你應該只在'我> 0'時循環。 – 2016-11-18 15:21:04

+1

同意。投票結束爲錯字 –

+0

錯誤消息相當具體。你研究了'KeyError'的含義嗎? –

回答

2

您的dict沒有條目key0。 這就是爲什麼你的錯誤:

Traceback (most recent call last): 
    File "python", line 31, in <module> 
KeyError: 0 

一個解決辦法是,改變while條件。

while(i >=0): 

到:

while(i > 0): 

希望這有助於。