Python打字练习小游戏源程序,随机产生一串字符,可对打字练习的正确率和时间进行统计,运行截图如下:

from tkinter import *
import random
import string
from datetime import datetimeroot = Tk()
root.title("Python打字练习 By:Python代码狂人")
Label(root, text='系统题目:').grid(row=0)
Label(root, text='用户作答:').grid(row=1)
Label(root, text='考试结果:').grid(row=2)
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
v1.set("点击'开始测试'按钮开始出题")
e1 = Entry(root, text=v1, state='disabled', width=40, font=('宋体', 14))
e2 = Entry(root, textvariable=v2, width=40, font=('宋体', 14))
e3 = Label(root, textvariable=v3, width=40, font=('宋体', 10), foreground='red')
e1.grid(row=0, column=1, padx=10, pady=20)
e2.grid(row=1, column=1, padx=10, pady=20)
e3.grid(row=2, column=1, padx=10, pady=20)
text = Text(root, width=80, height=7)
text.grid(row=4, column=0, columnspan=2, pady=5)class TypingTest:def __init__(self):self.time_list = []self.letterNum = 20self.letterStr = ''.join(random.sample(string.printable.split(' ')[0], self.letterNum))self.examination_paper = ''def time_calc(self):self.time_list.append(datetime.now())yielddef create_exam(self):text.delete(0.0, END)# e3.delete(0, END)v1.set(self.letterStr)self.time_calc().__next__()text.insert(END, "开始:%s \n" % str(self.time_list[-1]))user_only1.config(state='active')def score(self):wrong_index = []self.time_calc().__next__()text.insert(END, "结束:%s\n" % str(self.time_list[-1]))use_time = (self.time_list[-1] - self.time_list[-2]).secondsself.examination_paper = v2.get()if len(self.examination_paper) > self.letterNum:v3.set("输入数据有误,作答数大于考题数")else:right_num = 0for z in range(len(self.examination_paper)):if self.examination_paper[z] == self.letterStr[z]:right_num += 1else:wrong_index.append(z)if right_num == self.letterNum:v3.set("完全正确,正确率%.2f%%用时:%s秒" % ((right_num * 1.0) / self.letterNum * 100, use_time))else:v3.set("正确率%.2f%%用时:%s 秒" % ((right_num * 1.0) / self.letterNum * 100, use_time))# e2.delete(0, END)text.insert(END, "题目:%s\n" % self.letterStr)tag_info = list(map(lambda x: '4.' + str(x + 3), wrong_index))text.insert(END, "作答:%s\n" % self.examination_paper)for i in range(len(tag_info)):text.tag_add("tag1", tag_info[i])text.tag_config("tag1", background='red')user_only1.config(state='disabled')TypingTest = TypingTest()
Button(root, text="开始测试", width=10, command=TypingTest.create_exam).grid(row=3, column=0, sticky=W, padx=30, pady=5)
user_only1 = Button(root, text="交卷", width=10, command=TypingTest.score, state='disable')
user_only1.grid(row=3, column=1, sticky=E, padx=30, pady=5)mainloop()

更多Python源代码,请微信关注:Python代码大全,

Python打字练习小游戏源代码相关推荐

  1. python打字游戏增加开始页面_Python实践项目大全之Python打字练习小游戏源代码

    from tkinter import *import randomimport stringfrom datetime import datetimeroot = Tk()root.title(&q ...

  2. python双手打字_Python打字练习小游戏源代码

    Python打字练习小游戏源代码 Python代码狂人 Python代码大全 Python打字练习小游戏源程序,随机产生一串字符,可对打字练习的正确率和时间进行统计,运行截图如下: from tkin ...

  3. Python版见缝插针小游戏源代码,球球旋转大作战源程序

    见缝插针游戏是一款非常考验玩家手眼协调能力的休闲益智虐心虐脑小游戏,玩法很简单,但要过关却很有挑战性哟! 主要是将一系列的小球,插入到旋转的摩天轮转盘当中,插入过程中不能碰到旋转的摩天轮上的其他小球, ...

  4. Python魂斗罗小游戏源代码

    Python魂斗罗小游戏源代码源程序,主程序Contra.py,游戏简易使用说明:A:向左,D:向右,W:跳起,S:趴下,J:射击,P:退出程序. 程序运行截图: Contra.py ''' 公众号: ...

  5. Python打砖块小游戏源代码

    这次用Python实现的是一个接球打砖块的小游戏,最核心的就是:碰撞检测的数学模型 程序运行截图 其实,编程问题到最后就是数学问题,这个游戏涉及到2D圆形与矩形的碰撞检测问题: 碰撞检测原理:通过找出 ...

  6. python推箱子小游戏源代码_Python制作推箱子小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 游戏简介 ...

  7. Python地雷战小游戏源代码

    Python版地道战小游戏源代码,游戏中寻找所需要的五种合成地雷的原材料,并躲避敌人的抓捕,雷可以炸死敌方.程序运行截图: 主要程序代码: tunnel_war_game.py import pyga ...

  8. Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk

    Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk 程序依赖:pygame2.0.1, pymunk5.5.0 直接运行main.py 完整代码下载地址:Python版经典小游戏 ...

  9. Python我的世界小游戏源代码

    我的世界小游戏使用方法: 移动 前进:W,后退:S,向左:A,向右:D,环顾四周:鼠标,跳起:空格键,切换飞行模式:Tab; 选择建筑材料 砖:1,草:2,沙子:3,删除建筑:鼠标左键单击,创建建筑块 ...

  10. Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式

    Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式. 娱乐模式下,僵尸会头顶不同的汉字,此时屏幕会提示要消灭的汉字,移动豌豆消灭对应汉字的僵尸,如果攻击非提示汉 ...

最新文章

  1. 坑爹的PHImageManager和PHImageRequestOptions
  2. AI催生新的工作机遇:5个未来会很吃香的岗位
  3. 30、JAVA_WEB开发基础之servlet(1)
  4. qt怎么设置标签背景图片_HTML中怎么设置h1的字体样式你知道吗?关于设置h1标签的样式详解...
  5. IOS LocationManager定位国内偏移,火星坐标(GCJ-02)解决方法
  6. 正则表达式之全部符号解释
  7. 技术文件服务器搭建,搭建文件服务器_mob604756e49326的技术博客_51CTO博客
  8. 离散时间信号常见函数的实现(matlab)
  9. Mobileye技术与市场走势
  10. bartender连接oracle,设置BarTender打印用的数据库连接
  11. 开博了,微博太短,不适合,还是稀饭大的博客
  12. 台式计算机m.2的参数,联想启天M系列
  13. iphone win7无法识别_win7系统电脑不能识别iphone苹果设备的解决方法
  14. .NET Standard
  15. Java解惑之长整型
  16. 参与修谱工作,要具备哪些能力?光会修谱可不行
  17. jQuery TreeGrid
  18. linux运维是什么
  19. 海底捞市值蒸发2323亿关店300家,火锅“炼金术”还灵验吗?
  20. 真爱如血第七季/全集True Blood迅雷下载

热门文章

  1. 用python生成密码本(不同模式不同密码)
  2. python日常应用——pdf拆分和合并 python PyPDF2
  3. 虚拟DOM和deff算法
  4. VMware虚拟机ubuntu ros安装摄像头驱动
  5. 51nod1521 一维战舰
  6. 成为Lowe‘s劳氏供应商的条件
  7. 计算机内存小怎么改大,电脑内存太小的优化方法步骤
  8. C语言-学习笔记完整版
  9. 使用百度翻译API实现一键翻译
  10. QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)