我是Python的新手,我现在仍然坚持做什么,因为我一直收到这个错误。我试图将得分文件的内容添加到一起并获得平均值,但我似乎无法让它工作。
我的代码:
# open and read file student / score
student_file = open("Student.txt", "r")
score_file = open("Score.txt", "r")
student = student_file.read().split(' ')
score = score_file.read().split(' ')
addedScore = 0.0
average = 0.0
for i in range(0,len(student)):
print("Student: "+student[i]+" Final: "+score[i])
addedScore = addedScore + score[i]
average = addedScore / 2
print("The class average is:", average)
得分文件中包含浮点数:
90.0 94.0 74.4 63.2 79.4 87.6 67.7 78.1 95.8 82.1
错误消息
line 12, in <module>
addedScore = addedScore + score[i]
TypeError: unsupported operand type(s) for +: 'float' and 'str'
我感谢所有能得到的帮助。非常感谢
答案 0 :(得分:6)
由于score
是通过拆分字符串创建的,因此它的所有元素都是字符串;因此,有关尝试向字符串添加浮点数的投诉。如果你想要那个字符串代表的值,你需要计算它;类似于float(score[i])
。
答案 1 :(得分:1)
score
是一个字符串列表,因此您无法像在此处一样向浮点数添加字符串:addedScore = addedScore + score[i]
。您必须将此字符串转换为浮点数:addedScore = addedScore + float(score[i])
答案 2 :(得分:1)
分割文件内容时,它们仍然是字符串。将score = score_file.read().split(' ')
更改为score = [float(x) for x in score_file.read().split(" ")]
。您可能不需要执行.split(" ")
,因为str.split()
默认情况下会按空格分割。因此,您可以使用.split()
。