人生苦短,我用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. Q467 环绕字符串中唯一的子字符串

    把字符串 s 看作是"abcdefghijklmnopqrstuvwxyz"的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrst ...

  2. PIE SDK组件式开发综合运用示例

    1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发 ...

  3. Http请求响应模型

    主要用到以下四个部分: Client   API   DB   API 场景:登录 1.Client发起请求到API接口层 1.1用户在客户端输入登录信息,点击登录,发送请求 2.API接受用户发起的 ...

  4. lucene关于IndexReader总结

    IndexReader.使用过程中有时会出现document被删除,reader还是原来的reader没有改变,所以使用openifchanged保证, 又因为IndexReader 初始化很耗费资源 ...

  5. 运行时用AnimatorOverrideController动态加载动画片段

    https://blog.csdn.net/tlrainty/article/details/54602786 项目中经常会遇到这种情况:很多模型动画的AnimatorController是一模一样的 ...

  6. sharding-jdbc集成spring+mybatis分表分库

    maven: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  7. Spark中自定义累加器Accumulator

    1. 自定义累加器 自定义累加器需要继承AccumulatorParam,实现addInPlace和zero方法. 例1:实现Long类型的累加器 object LongAccumulatorPara ...

  8. Firebird Fluentdata

    Fluentdata 支持很多种数据库驱动,但对Firebird不友好,不过可以使用DB2Provider来操作大部分功能, 例如: new DbContext().ConnectionString( ...

  9. python中的单例模式的应用

    1 使用__new__方法 class Singleton(object):    def __new__(cls, *args, **kw):        if not hasattr(cls, ...

  10. [javaEE] EL表达式获取数据

    jsp标签: <jsp:include> <jsp:forward> 实现请求转发 <jsp:param> 给上面的添加参数的 EL表达式: 1.获取变量数据 &l ...