设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: mty1111
打印 上一主题 下一主题

【Python 第41课】 用文件保存游戏(3)

[复制链接]

0

主题

0

好友

6

积分

新手上路

Rank: 1

楼主
发表于 2018-3-27 14:36:30 |显示全部楼层
本帖最后由 Hey_Python 于 2018-3-27 14:40 编辑

crossin老师,你好。我是萌新一个。按照老师说的去打41课的。用的是python3,但是每次我用同一个名字去玩,都没有之前记录,在文档里面又新开了一个相同的名字了。求解~~

from random import randint

name = input('请输入你的名字:')  #输入玩家名字

f = open('game.txt')
lines = f.readlines()
f.close()

scores = {}  #初始化一个空字典
for l in lines:
    s = l.split()  #把每一行的数据拆分成list
    scores[s[0]] = s[1:]  #第一项作为key,剩下的作为value
score = scores.get('name') #查找当前玩家的数据
if score is None: #如果没有找到,
    score = [0,0,0]  #初始化数据

   
game_times=int(score[0])
min_times = int(score[1])
total_times = int(score[2])
if game_times > 0:
    avg_times = float(total_times) / game_times
else:
    avg_times = 0
print(('你已经玩了%d次,最少%d轮猜出答案,平均%.2f轮猜出答案') % (game_times, min_times, avg_times))

num = randint(1,100)
times = 0     #记录本次游戏轮数
print('Guess what I think?')
bingo = False
while bingo == False:
    times += 1  #轮数+1
    answer = int(input())
    if answer < num:
      print('too small!')
    if answer > num:
      print('too big!')
    if answer == num:
      print('BINGO')
      bingo = True


#如果是第一次玩,或者轮数比最小轮数少,则更新最小轮数
if game_times == 0 or times < min_times:
      min_times = times
total_times += times   #总游戏轮数增加
game_times += 1    #游戏次数增加

#把成绩更新到对应的玩家数据中
#加str转成字符串,为后面的格式化作准备
scores[name] =  [str(game_times), str(min_times), str(total_times)]
result = ' '  #格式化一个空字符串,用来存储数据
for n in scores:
       #把成绩按照"name game_times min_times total_times"格式化
       #结尾要加上/n换行
       line = n + ' ' + ' '.join(scores[n]) + '/n'
       result += line  #添加到result中

f = open('game.txt', 'w')
f.write(result)
f.close()


==============================================
0 0 0/nhey 1 7 7/n/nhey 1 8 8/n/nhey 1 6 6/n
文档里面的数据
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

沙发
发表于 2018-3-27 22:54:53 |显示全部楼层
crossin先生 发表于 2018-3-27 19:42
scores.get('name')
应该是
scores.get(name)

谢谢老师,我一开始也是写(name),之后才加了‘’,不过我发现问题了,是最后换行的那个\n打成/n了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-10 10:52 , Processed in 0.026394 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部