2017-06-16 62 views
-1

我在工作一個列表更新程序,但是當我運行此代碼時,我得到了can only concatenate list (not "str") to list錯誤。這裏是我的代碼:只能連接列表(不是「str」)到列表 - 類型錯誤

A = 1 
B = 2 
C = 3 
D = 4 
E = 5 

Acount = 1 
Bcount = 1 
Ccount = 1 
Dcount = 1 
Ecount = 1 

ScoreA = 20 

X = [A, B, C, D, E] 
Y = [20, 40, 60, 80, 100] 
Ave = input('Enter hours spent revising (1-5): ') 
if Ave == '1': 
    Score = input('Enter test score: ') 
    Acount += 1 
    ScoreA = Y[0:1] + Score #Error occurs here 
    ScoreA = ScoreA/Acount 
    Y.insert(0, ScoreA) 

任何幫助表示讚賞,即使它只是次要的。如果下調投票,請解釋爲什麼我今後可以改進問題。

回答

0

值ScoreA正在分配一個列表拼接。然後,您嘗試將「Score」添加到列表中,但Score是一個字符串。因此,需要通過指數ScoreA訪問元素,並添加它來得分,鑄造爲int:

Y = [20, 40, 60, 80, 100] 
Score = input('Enter test score: ') 
Acount += 1 
ScoreA = Y[0:1][0] + int(Score) #Here, accessing the first value of Y, which is the only value 
0

的問題是,Y[0:1]是一個列表:

In [95]: Y = [1,2,3,4,5] 

In [96]: Y[0:1] 
Out[96]: [1] 

看來你正嘗試將Score添加到Y中的第一個元素,即Y[0]。所以,我應該這樣做:

In [97]: Score = 5 

In [98]: Y[0] += Score 

In [99]: Y[0] 
Out[99]: 6 

沒有與你的代碼的另一個問題,即input返回一個字符串,而不是你似乎想一個int /浮動。因此,我建議您將Score = input('Enter test score: ')更改爲Score = float(input('Enter test score: '))

相關問題