【任务】
统计游戏数据(玩家姓名/一共玩了多少次/每次游戏平均几轮猜中/最快猜中轮数),并将结果保存在文件中
【步骤】
1. 在程序一开始,外部循环的外面,通过 input 获取玩家姓名,并新增3个变量分别用来记录猜数字游戏总游戏次数、总游戏轮数和最快猜中轮数;
2. 外部循环的里面,当用户每进行一轮游戏,猜中结果后:
- 把总游戏次数增加 1,并通过累加(+=)更新总游戏轮数;
- 通过 总游戏轮数/总游戏次数 算出一次游戏平均几轮猜中;
- 通过对比已有最快猜中次数和本轮猜中次数,看本次成绩是否最好成绩,判断是否需要更新最好成绩。
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()
结果如下:
原文地址:https://www.cnblogs.com/zhuzihaha/p/11524684.html
时间: 2024-10-15 12:08:14