人生苦短,我用Python

关键词

1.多用户
2.字典记录所有成绩
3.每次游戏轮数&总游戏次数&平均每次游戏需要多少轮
字典Dictionary、列表List、元组Tuple差异化理解

  1. from random import randint
  2. name = input('请输入你的名字:')#输入玩家名字
  3. #读取文件中的数据
  4. f = open('game.txt')
  5. lines = f.readlines()
  6. f.close()
  7. scores = { }#Initialize an empty directory
  8. for l in lines:
  9. s = l.split() # split (拆分)each line data to list
  10. scores[s[0]] = s[1:] #把第一项作为key,剩下的作为value
  11. score = scores.get(name) # 查找当前玩家的数据
  12. if score is None:#如果没找到该玩家
  13. score = [0,0,0] #初始化数据,new
  14. # 分别存入变量中
  15. game_times = int(score[0])
  16. min_times = int(score[1])
  17. total_times = int(score[2])
  18. #计算游戏平均轮数,注意浮点数和避免除零错误
  19. if game_times >0 :
  20. avg_times = float(total_times) / game_times
  21. else:
  22. avg_times = 0
  23. #输出成绩信息,平均轮数保留2位小数
  24. print ('%s,你已经玩了%d次,最少%d轮猜出答案,平均%.2f轮猜出答案'%(name,game_times,min_times,avg_times))
  25. num = randint(1,100)
  26. times = 0 #记录本轮游戏次数
  27. print ('Guess what I think?')
  28. bingo = False
  29. while bingo == False:
  30. times += 1
  31. answer = int(input())
  32. if answer < num:
  33. print ('too small')
  34. if answer > num:
  35. print ('too big')
  36. if answer==num:
  37. print ('Bingo!')
  38. bingo = True
  39. #如果是第一次玩,或者本轮游戏次数比最小次数少,则更新最小次数
  40. if game_times == 0 or times < min_times:
  41. min_times = times
  42. total_times += times #总游戏轮数
  43. game_times +=1 #游戏次数增加
  44. #把成绩更新到对应的玩家数据中
  45. #加str转换为字符串,为后面的数据化做准备
  46. scores[name] = [str(game_times), str(min_times), str(total_times)]
  47. result = ' '
  48. for n in scores:
  49. line = n + ' ' + ' '.join(scores[n])+'\n' # 输出key 和value
  50. result += line
  51. f = open('game.txt','w') # 相对路径,同一文件夹下
  52. f.write(result)
  53. f.close()



【Python】猜数小游戏(文件操作)的更多相关文章

  1. Python猜数小游戏

    使用random变量随机生成一个1到100之间的数 采集用户所输入的数字,如果输入的不符合要求会让用户重新输入. 输入符合要求,游戏开始.如果数字大于随机数,输出数字太大:如果小于随机数,输出数字太小 ...

  2. 常用Java API之Ramdom--用代码模拟猜数小游戏

    常用Java API之Ramdom Ramdom类用来生成随机数字.使用起来也是三个步骤: 1.导包 import java.util.Random; 2.创建 Random r = new Rand ...

  3. Java数组重修,猜数小游戏改进和打印正三角形

    数组重修,猜数小游戏 要求:从键盘输入一个数,判断数组是否包含此数,运用随机数 我们可能会这样写 import java.util.Random; import java.util.Scanner; ...

  4. jsp-简单的猜数小游戏

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  5. 【Python】猜数小游戏

    有点沙雕 temp=input("猜猜我心里想的是哪个数字?") guess=int (temp) if guess==8: print("你是我肚里的蛔虫么?" ...

  6. 带提示范围的猜数小游戏--python

    import random random_number = random.randint(1, 99) print(random_number) start_data = 1 end_data = 9 ...

  7. python -猜字小游戏

    代码运行效果如下: 注意: 1.必须要在python3环境想使用 2.QQ:3084276329(一起交流学习) 3.还请大家评论 Guess the word game代码如下: #! /usr/b ...

  8. 初识python: while循环 猜年龄小游戏

    知识点: 1.python注释方法: 单行注释: # 多行注释: '''注释内容 '''  (单引号或双引号都可以),亦可打印多行 例: #此处是单行注释信息 print('这里是打印内容') #这里 ...

  9. 简单的猜数字小游戏--Python

    猜数字小游戏: #coding=utf-8 import random   answer =random.randint(1,100) #生成随机数 n=int (input("Please ...

随机推荐

  1. 899. Orderly Queue

    A string S of lowercase letters is given.  Then, we may make any number of moves. In each move, we c ...

  2. c# 小票打印

    c# 在进行小票打印时大致有三种方法. 1. 使用水晶报表进行打印.可以参考:https://www.cnblogs.com/aitong/p/10717786.html 2. 在 PrintDocu ...

  3. 安装orcle服务器端后,不需要安装客户端,可通过plsql登录

    用PL/SQL连接oracle数据库,不管是本地的还是远程的,一般都需要安装oracle客户端(500M左右)比较大,而且在各个系统上安装也有些讲究,需要修改相应配置文件,有点麻烦,像平时开发时候,我 ...

  4. document.frames与window.frames在不同浏览器中的使用

    问题: document.frames 只有 IE Opera 支持.等同于 window.frames.用来取得当前页面内 window 对象的集合. 在 Firefox Chorome Safar ...

  5. 如何下载Red Hat Enterprise Linux系统

    关于如何下载Red Hat Enterprise Linux系统? 这是一个既简单,又复杂的问题.简单是因为我以为她很简单,复杂是因为下载的过程有点复杂的. 相信去Oracle官网下载过东西的同学对下 ...

  6. Beta阶段个人总结

    Beta阶段个人总结 这一次的项目在提出项目时有很大的信心能做好,但最后结果却不尽人意.由于这次的项目一开始目标是利用Android studio构建客户端然后电脑上连接数据库,在初期还未发现什么问题 ...

  7. vue 报错./lib/html5-entities.js, this relative module was not found

    今天在做项目一直都挺正常的,我稍微休息一下回来就报这个错,我百度了半天也没找到答案.然后我只能重新安装vue-cli,奇迹发生了错误没有,然后我又休息了一会发现有报错了.气炸了都. 话不多多说直接上图 ...

  8. in和not in

    当子查询返回的列的值是多个值,那么就不能使用比较运算符(> < = !=),使用关键字in 语法: select …..from …..where 表达式 in (子查询) 常用in替换等 ...

  9. jsp、servlet笔记

    1.init    初始化Jsp&Servlet方法   destroy 销毁Jsp&Servlet之前的方法   service 对用户请求生成响应的方法2.Jsp文件必须在jsp服 ...

  10. nodejs中cookie、session的使用

    因为http会话的无状态性,为了标记用户的登录状态,便出现了cookie.cookie分为很多种,有普通cookie.签名cookie.json cookie等,这里主要记录下在express应用中如 ...