Python怎么实现打字训练的程序
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章将为大家详细讲解有关Python怎么实现打字训练的程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、键盘上的字符需要生成,string模块生成字符。当然
千家信息网最后更新 2025年02月01日Python怎么实现打字训练的程序
这篇文章将为大家详细讲解有关Python怎么实现打字训练的程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1、键盘上的字符需要生成,string模块生成字符。
当然可以0-9,A-Z,a-z!等等,把键盘上的按键一个个举出来。
import string# 列举数字string.digits>>> '0123456789'# 列举小写字母string.ascii_lowercase>>> 'abcdefghijklmnopqrstuvwxyz'# 列举大写字母string.ascii_uppercase>>> 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'# 列举所有标点符号string.punctuation>>> '!"#$%&\'()*+,-./:;?@[\\]^_`{|}~'# 列举所有空白符string.whitespace>>> ' \t\n\r\x0b\x0c' string.ascii_letters = string.ascii_lowercase + string.ascii_uppercasestring.printable = string.ascii_letters + string.digits + string.whitespace + string.punctuation
2、判断剩余内容的相关读写。
from tkinter import *import randomimport stringfrom datetime import datetime root = 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 = 20 self.letterStr = ''.join(random.sample(string.printable.split(' ')[0], self.letterNum)) self.examination_paper = '' def time_calc(self): self.time_list.append(datetime.now()) yield def 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]).seconds self.examination_paper = v2.get() if len(self.examination_paper) > self.letterNum: v3.set("输入数据有误,作答数大于考题数") else: right_num = 0 for z in range(len(self.examination_paper)): if self.examination_paper[z] == self.letterStr[z]: right_num += 1 else: 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()
3、将最终代码打包成exe工具,可以脱离python环境,在单独的电脑上执行exe文件,就可以打字练习了。
关于"Python怎么实现打字训练的程序"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
打字
宋体
篇文章
程序
训练
内容
字母
字符
更多
正确率
键盘
题目
测试
生成
不错
实用
代码
大写
大写字母
小写
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
短视频需要哪些服务器
数据库被锁了是永久的吗
数据库备份训练营
楚雄易学java软件开发
万德数据库和洞见研报
千人数据库
勋哥网络安全专业
电脑网络技术很难吗
游戏软件开发属于哪类
剑灵还有多少个服务器
域控服务器和管理员主机
学习数据库系统原理有什么用
网络安全给微信转账是什么
重庆系统软件开发如何收费
旧物交易程序数据库
软件开发需要学物理吗
服务器 带宽 费用
社交软件开发哪个产品好用
数据库自反性推理证明
网络技术方案设计框架图
成都做数据库带亮的公司
共筑网络安全的盾
网络安全业务骨干培训
2021我国网络安全形势
沈阳一川互联网科技有限公司
无线传感器网络技术项目书
dbc数据库db文件
网络安全和信息安全
网络技术控是什么意思
软件开发年薪工资一般多少