Unsupported operand type(s) for +: 'float' und 'str' Fehler
Ich bin neu in Python und bin stecken geblieben mit dem, was jetzt tun, denn ich bekomme immer diese Fehlermeldung. Ich versuche, fügen Sie den Inhalt der score-Datei zusammen und bekomme eine Durchschnittliche, aber ich kann nicht scheinen, um es zu arbeiten.
Mein code:
# 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)
Die score-Datei ist voll von float-zahlen:
90.0 94.0 74.4 63.2 79.4 87.6 67.7 78.1 95.8 82.1
Die Fehlermeldung
line 12, in <module>
addedScore = addedScore + score[i]
TypeError: unsupported operand type(s) for +: 'float' and 'str'
Ich Schätze all die Hilfe die ich bekommen kann. Vielen Dank
addedScore = addedScore + float(score[i])
InformationsquelleAutor Usman Khan | 2016-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit
score
entstand durch die Teilung einer saite, die Elemente sind alle strings; daher ist die Beschwerde über das versuchen, fügen Sie ein float in einen string. Wenn Sie möchten, dass der Wert, der dieser Zeichenfolge entspricht, die Sie brauchen, zu berechnen; so etwas wiefloat(score[i])
.InformationsquelleAutor Scott Hunter
score
ist eine Liste von strings, so dass Sie definitiv nicht fügen Sie einen string in einen float als Sie hier tun:addedScore = addedScore + score[i]
. Sie haben zu konvertieren dieser string zu einem float:addedScore = addedScore + float(score[i])
InformationsquelleAutor ForceBru
Wenn Sie teilen Sie den Inhalt der Datei, Sie sind immer noch strings. Ändern
score = score_file.read().split(' ')
zuscore = [float(x) for x in score_file.read().split(" ")]
. Sie wahrscheinlich nicht brauchen, zu tun.split(" ")
, weilstr.split()
wird standardmäßig aufgeteilt, die durch Leerzeichen. Daher können Sie.split()
.InformationsquelleAutor zondo