我正在进行列表更新程序但是当我运行此代码时出现can only concatenate list (not "str") to list
错误。这是我的代码:
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 :(得分:0)
值ScoreA被分配了一个列表拼接。然后,您尝试添加"分数"到列表,但分数是一个字符串。因此,您需要在ScoreA中按索引访问元素并将其添加到Score,并将其转换为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
答案 1 :(得分: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 / float。因此,我建议您将Score = input('Enter test score: ')
更改为Score = float(input('Enter test score: '))