千家信息网

Python怎么实现打字训练的程序

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章将为大家详细讲解有关Python怎么实现打字训练的程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、键盘上的字符需要生成,string模块生成字符。当然
千家信息网最后更新 2025年11月14日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安全错误 数据库的锁怎样保障安全 软件开发公司大学生创业计划书 为什么要进行网络安全调研 德惠通用网络技术咨询推荐咨询 魔兽世界灰烬使者服务器免费转服 九台区品质网络技术售后服务 sql数据库如何复制表格 河北网络技术信息报价 沙漠旋转服务器视频 ios 网络安全加密 微信公众号中可连接数据库吗 苏小妹哪个软件开发的 服务器启动后能不能上网 大足区提供软件开发流程公司 网络安全保护情报 十个法律数据库 优缺点 云数据库应用 手机电话服务器错误怎么回事 高华网络技术有限公司 张家口软件开发网上价格 为什么使用数据库处理数据 建筑企业点调数据库 网络安全事件应应急预案 重庆专业服务器虚拟主机 windows软件开发主流 手机电话服务器错误怎么回事 技嘉m68m支持服务器内存吗 嵌入式软件开发常用语言 数据库怎么看服务地址 计算机网络技术专业对口岗位 hp服务器内存顺序
0