1987WEB视界-分享互联网热点话题和事件

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

Python如何实现打字训练的程序

1987web2024-03-27WEB开发128

1、键盘上的字符需要生成,string模块生成字符。

当然可以0-9,A-Z,a-z!等等,把键盘上的按键一个个举出来。

importstring#列举数字string.digits>>>0123456789#列举小写字母string.ascii_lowercase>>>abcdefghijklmnopqrstuvwxyz#列举大写字母string.ascii_uppercase>>>ABCDEFGHIJKLMNOPQRSTUVWXYZ#列举所有标点符号string.punctuation>>>!"#$%&\()*+,-./:;?@[\\]^_`{|}~#列举所有空白符string.whitespace>>>\t\n\r\x0b\x0cstring.ascii_letters=string.ascii_lowercase+string.ascii_uppercasestring.printable=string.ascii_letters+string.digits+string.whitespace+string.punctuation

2、判断剩余内容的相关读写。

fromtkinterimport*importrandomimportstringfromdatetimeimportdatetimeroot=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)classTypingTest:def__init__(self):self.time_list=[]self.letterNum=20self.letterStr=.join(random.sample(string.printable.split()[0],self.letterNum))self.examination_paper=deftime_calc(self):self.time_list.append(datetime.now())yielddefcreate_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)defscore(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()iflen(self.examination_paper)>self.letterNum:v3.set("输入数据有误,作答数大于考题数")else:right_num=0forzinrange(len(self.examination_paper)):ifself.examination_paper[z]==self.letterStr[z]:right_num+=1else:wrong_index.append(z)ifright_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(lambdax:4.+str(x+3),wrong_index))text.insert(END,"作答:%s\n"%self.examination_paper)foriinrange(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实现打字训练程序的方法,希望对大家有所帮助。更多Python学习指路:Python基础教程