人生苦短,我用Python

关键词

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

from random import randint name = input('请输入你的名字:')#输入玩家名字
#读取文件中的数据
f = open('game.txt')
lines = f.readlines()
f.close() scores = { }#Initialize an empty directory
for l in lines:
s = l.split() # split (拆分)each line data to list
scores[s[0]] = s[1:] #把第一项作为key,剩下的作为value
score = scores.get(name) # 查找当前玩家的数据
if score is None:#如果没找到该玩家
score = [0,0,0] #初始化数据,new # 分别存入变量中
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 #输出成绩信息,平均轮数保留2位小数
print ('%s,你已经玩了%d次,最少%d轮猜出答案,平均%.2f轮猜出答案'%(name,game_times,min_times,avg_times)) num = randint(1,100)
times = 0 #记录本轮游戏次数 print ('Guess what I think?')
bingo = False
while bingo == False:
times += 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:
line = n + ' ' + ' '.join(scores[n])+'\n' # 输出key 和value
result += line f = open('game.txt','w') # 相对路径,同一文件夹下
f.write(result)
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. [蓝桥杯][2015年第六届真题]机器人塔(dfs)

    题目描述 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似:      A     B B    A B A   A A B B  B B B A B A B A B ...

  2. SELinux 引起的 Docker 启动失败

    问题描述 Linux OS 版本 CentOS Linux release 7.2.1511 (Core) 启动Docker service docker start 启动失败信息 原因分析 Erro ...

  3. 微信小程序回到顶部的两种方式

    一,使用view形式的回到顶部 <image src='../../img/button-top.png' class='goTop' hidden='{{!floorstatus}}' bin ...

  4. Python处理文件和查漏

    import os,re def change_filename(root): ''' 批量修改excel文件名 ''' for root_,_, fs in os.walk(root): for f ...

  5. unity3d vscode

    原来unity3d里assets store有一个插件,下载就行了,插件名就叫vscode 下载完了之后,preference里就会出现,vscode,Enable Integration 这一项勾上 ...

  6. 使用autoconf完成编译配置

    使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/make install, 使用起来很方便,不像平时自己写代码,要手写一堆复杂的Makefi ...

  7. java NIO学前准备

    之前一直对NIO感兴趣,无奈对IO的很多概念很模糊,所以对于NIO的学习也是一直半解,最近在网上查阅了很多资料,发现有很多概念是需要反复理解的,有的时候甚至当时理解了,但一段时间后又忘记了,所以决定自 ...

  8. 安装多个PHP环境会导致phpinfo和php -v中查看到的PHP版本不一致

    以前在上一个公司用的是集成环境wamp,PHP版本是5.5.后面换了一个公司,项目用的是PHP版本是5.2.今天想打开以前的项目想优化一下,发现pdo_mysql.dll扩展无法加载,于是想看看是不是 ...

  9. CodingLife的CSS样式整理

    1 首页的超链接鼠标悬停效果 .postTitle a:hover { color:red; text-decoration:none } 2 正文标题鼠标悬停效果 #topics .postTitl ...

  10. Python读取文件编码及内容

    Python读取文件编码及内容 最近做一个项目,需要读取文件内容,但是文件的编码方式有可能都不一样.有的使用GBK,有的使用UTF8.所以在不正确读取的时候会出现如下错误: UnicodeDecode ...