Ich bin ein Anfänger Programmierer und arbeite durch das Buch Python für den absoluten Anfänger. Ich bin auf ein Problem gestoßen, als ich versuchte, eine hohe Punktzahl für das Quizspiel zu schreiben. Wenn die Funktion 'highscore (user, highscore):' aufgerufen wird, versuche ich, die Argumente entsprechend zuzuordnen, damit ich die Informationen zur späteren Verwendung in eine Datei picken kann. Ich habe jedoch einen Fehler beim Versuch, die benötigten Informationen zu löschen.write() Argument muss str sein, nicht Bytes
def highscore(user, highscore):
'''stores the players score to a file.'''
import pickle, shelve
user = ''
highscore = 0
#Hscore = shelve.open('highscore.dat', 'c')
Hscore = open('highscore.txt', 'a')
pickle.dump(user, Hscore)
pickle.dump(highscore, Hscore)
#Hscore.sync()
Hscore.close()
da ich durch das Buch gerade arbeitete und auch Regale in Aktion gesehen, die ich auch versucht, aber mit ihnen in ihre eigene Reihe von Fehlern führen. also ignoriere die '#' zu diesem Zeitpunkt.
am Teil pickle.dump ist, wo ich einen Fehler erzeuge. Ich bekomme (wie der Titel schon sagt) einen Schreibfehler.
Ich verstehe nicht, warum es sie nicht als Zeichenfolge erkennt. wie wenn sie in der Hauptfunktion definiert sind, ist es in der Tat eine Zeichenfolge ..
Versuchen Sie es mit dem'Ab'-Modus. Wenn Sie 'pickle' verwenden, sollte im Dateimodus immer ein' b' sein. –
Sie können einige zusätzliche gute Informationen hierzu finden, indem Sie den Titel Ihrer Frage googlen. – TigerhawkT3