z珠子

导航

python任务5

【任务】

统计游戏数据(玩家姓名/一共玩了多少次/每次游戏平均几轮猜中/最快猜中轮数),并将结果保存在文件中

【步骤】

1. 在程序一开始,外部循环的外面,通过 input 获取玩家姓名,并新增3个变量分别用来记录猜数字游戏总游戏次数、总游戏轮数和最快猜中轮数;

2. 外部循环的里面,当用户每进行一轮游戏,猜中结果后:

  1. 把总游戏次数增加 1,并通过累加(+=)更新总游戏轮数;
  2. 通过 总游戏轮数/总游戏次数 算出一次游戏平均几轮猜中;
  3. 通过对比已有最快猜中次数和本轮猜中次数,看本次成绩是否最好成绩,判断是否需要更新最好成绩。

3. 利用字符串的格式化方法,输出用户已经玩了多少次,最少几轮猜出答案,和平均几轮猜出答案;

4. 结束游戏后,把游戏数据(玩家姓名,总游戏次数、最快猜出的轮数和猜过的总轮数)写入一个 .txt 文件

 

 1 #coding:utf-8
 2 #_author:zhuzi
 3 #date: 2019/9/13
 4 #@desc:记录你的成绩
 5 from random import randint
 6 name = input("请输入你的名字:")
 7 
 8 game_times = 0 #总游戏次数
 9 fast_times = 0 #最快猜出的轮数
10 total_times = 0 #猜过的总轮数
11 
12 
13 while True:
14     num = randint(1,100)
15     times = 0 #用times记录用户一次游戏猜的轮数
16 
17 
18     while True:
19         a = int(input("请猜一个1-100的数字:"))
20         times += 1
21         if num > a :
22             print("太小了")
23         elif num < a:
24             print("太大了")
25         else:
26             print("智商超群!棒棒哒,你一共猜了%d轮,实在太厉害了"%times)
27             break
28 
29 
30     if game_times ==0 or times < fast_times:
31         fast_times = times
32     total_times += times #总游戏轮数增加
33     game_times += 1 #游戏次数增加
34     agv_times = total_times/game_times
35 
36     #输出成绩信息
37     print("%s,你已经玩了%d次,至少%d轮猜出答案,平均%d轮猜出答案"%(name,total_times,fast_times,agv_times))
38 
39     choice=input("还要再玩么?(输入Y/y继续,其他退出)")
40     if choice != str("Y") and choice != str("y"):
41         print("GAME OVER~~~~~")
42         break
43 
44 result = "%s %d %d %d"%(name,total_times,fast_times,agv_times)
45 f = open('result.txt', 'w',encoding='gbk')
46 f.write(result)
47 f.close()

结果如下:

 

posted on 2019-09-15 22:15  z珠子  阅读(167)  评论(0编辑  收藏  举报