我是一名初学者程序员,正在阅读《Python 初学者》一书。我在尝试为问答游戏编写高分函数时遇到了一个问题。当调用函数“highscore(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 的书。您需要在以下位置打开文件二进制模式; add b
到模式:
Hscore = open('highscore.txt', 'ab')
如果您的书中包含更多此类问题,那么可能是时候切换到支持 Python 3 的版本或安装 Python 2.7 了,至少是为了完成本书的练习。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)