私は初心者プログラマーであり、絶対的な初心者のための本pythonを使用しています。私は、トリビアゲーム用の高得点関数を作成しようとして問題に遭遇しました。 (user、highscore): 'が呼び出されます。それに応じて引数を割り当てようとするので、後で使用するために情報をファイルにピクルできますが、必要な情報をダンプしようとしてエラーになります。
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()
私は本を読み進めており、棚が実際に動作しているのを見たので、私もそれらを使用しようとしましたが、独自のエラーに遭遇しました。そのため、この時点では「#」を無視してください。
pickle.dumpの部分でエラーが発生しています。 (タイトルが示すように)引数の書き込みエラーが発生し続けます。
なぜそれらを文字列として認識しないのか分かりません。メイン関数で定義されている場合、実際には文字列です。
Pythonを対象とした本を読んでいるようです。2. バイナリモード;でファイルを開く必要があります。モードにb
を追加します。
Hscore = open('highscore.txt', 'ab')
本にこのような問題がさらに含まれている場合は、少なくとも本の演習を完了するために、Python 3をサポートするものに切り替えるか、Python 2.7をインストールするときがあります。