围棋常昊爱人

Python编程如何用文件保存游戏(3)

今天小编要跟大家分享的文章是Python编程如何用文件保存游戏(3)?上面两讲我们学习了用文件保存游戏的前两节,分别是游戏成绩的读取和记录,按理说有来有往,应该结束了,那么我们这一讲学习什么呢? python入门新手和正在python学习的小伙伴快来看一看吧,希望能够对大家有所帮助 !

你的小游戏现在已经可以保存成绩了,但只有一组成绩,不管谁来玩,都会算在里面。所以今天我还要?#30001;?#19968;个更多的功能:存储多组成绩。玩家需要做的就是,在游戏开始前,输入自己的名字。而我会根据这个名字记录他的成绩。这个功能所用到的内容我们几乎都说过,现在要把它们结合起来。

Python编程如何用文件保存游戏(3)

首先要输入名字,这是我们用来区分玩家成绩的依据:

name = raw_input('请输入你的名字:')

接下来,我们读取文件。与之前不同,我们用readlines把每组成绩分开来:

lines = f.readlines()

再用一个字典来记录所有的成绩:

scores = {}

for l in lines:

s = l.split()

scores[s[0]] = s[1:]

这个字典中,每一项的key是玩?#19994;?#21517;字,value是一个由剩下的数据组成的数组。这里每一个value就相当于我们之前的成绩数据。

我们要?#19994;?#24403;前玩?#19994;?#25968;据:

score = scores.get(name)

字典类的get方法是按照给定key寻找对应项,如果不存在这样的key,就返回空值None。

所以如果没有?#19994;?#35813;玩?#19994;?#25968;据,说明他是一个新玩家,我们给他初始化一组成绩:

if score is None:

score = [0, 0, 0]

这是我们拿到的score,已经和上一课中的score一样了,因此剩下的很多代码都不用改动。

当游戏结束,记录成绩的时候,和之前的方法不一样。我们不能直接把这次成绩存到文件里,那样就会覆盖掉别人的成绩。必须先把成绩更新到scores字典中,再统一写回文件?#23567;?/p>

把成绩更新到scores中,如果没有这一项,会自动生成新条目:

scores[name] = [str(game_times), str(min_times), str(total_times)]

对于每一项成绩,我们要将其格式化:

result = ''

for n in scores:

line = n + ' ' + ' '.join(scores[n]) + '\n'

result += line

把scores中的每一项按照“名字 游戏次数 最低轮数 总轮数\n”的格式拼成字符串,再全部放到result里,就得到了我们要保存的结果。

最后就和之前一样,把result保存到文件?#23567;?/p>

如果你充分理解了这个程序,恭喜你,你对文件处理已经有了一个基本的了解。在日常工作学习中,如果需要处理一些大量重复机械的文件操作,比如整理格式、更改文件中的部分文字、统计数据等等,都可以试着用Python来解决。

恭喜您在Python的道路上又坚持了一天,最近几节的?#35759;?#20063;在提升,唯一的解决办法就是大家反复练习,反复?#20040;?#30721;,自己不能解决有疑问的问题,就去找人帮助自己理解,坚持一下,我们一定能学会!

以上就是小编今天为大家分享的关于Python编程如何用文件保存游戏(3)的文章,希望本篇文章能够对正在 python学习 和从事python相关工作的小伙伴们有所帮助,想要了解更多相关知识记得关注马哥教育官网。最后祝愿小伙伴们工作顺利!

免责声明:内容和?#35745;?#28304;自网络,版权归原作者所有,如有侵?#25913;?#30340;原创版权请告知,我们将尽快删除相关内容。

相关新闻

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:[email protected]

工作时间:周一至周日,09:00-18:30

QR code
围棋常昊爱人
河南22选5 四川金7乐app下载 美国职业棒球比分 如意彩票群 欧洲快乐赛车 新疆十一选五走势图一定牛 广东时时彩一注多少钱 顶呱刮 安徽快3遗漏值 金博棋牌官方