Python怎么实现打字训练的程序
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关Python怎么实现打字训练的程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、键盘上的字符需要生成,string模块生成字符。当然
千家信息网最后更新 2026年11月03日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.punctuation2、判断剩余内容的相关读写。
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安全错误
数据库的锁怎样保障安全
互联网是不是新科技
科技信息互联网
青岛互联网科技公司
腾讯科技 互联网女皇
友谊互联网络科技
互联网科技logo
盛创互联网科技有限公司
上海电发互联网科技有限公司
互联网科技产品
北京大学互联网科技怎么样
移动互联网科技股
中化能源互联网科技招聘
荆州市昕露互联网络科技有限公司
伊宁互联网科技做什么的
沐思想互联网科技有限公司
小米互联网科技园入驻
互联网金融运营模式中的金融科技
中国互联网公司的科技投入
华人运通互联网科技公司
重庆科技产业互联网有哪些
科技平台互联网
朗新科技与工业互联网
为想互联网科技
天津摩尔互联网科技
开启互联网科技时代小说
福州新华互联网科技学校 知乎
江阴互联网智能科技产品进口
互联网科技与大数据专业
互联网营销推广黑科技
互联网科技创业有什么好项目