Jestem początkującym programistą i pracuję nad książką Python dla absolutnie początkujących. Natknąłem się na problem, próbując napisać funkcję wysokiej punktacji do gry ciekawostki. kiedy wywoływana jest funkcja "highscore (user, highscore):", próbuję odpowiednio przypisać argumenty, aby można było pobrać informacje do pliku do późniejszego wykorzystania. jednak wystąpił błąd podczas próby zrzucenia wymaganych informacji.Argument write() musi być str, nie bajtami
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()
od czasu, gdy pracuję nad książką i widziałem półki w akcji, próbowałem również ich używać, ale napotkam na ich własny zestaw błędów. więc zignoruj "#" w tym czasie.
w części pickle.dump jest miejscem, w którym generuję błąd. Wciąż otrzymuję (jak sugeruje tytuł) błąd argumentu zapisu.
Nie rozumiem, dlaczego nie rozpoznaje ich jako ciąg. jak wtedy, gdy są zdefiniowane w głównej funkcji, to jest to ciąg ..
Spróbuj użyć trybu "ab". Ilekroć używasz 'pikle', zawsze powinno być' b' w trybie pliku. –
Możesz znaleźć dodatkowe, dobre informacje na ten temat, wybierając Googling w tytule pytania. – TigerhawkT3