网站建设设计设计,各大网站新闻,做网站建设培训,做的网站图片模糊参考链接#xff1a; 在Python中切换大小写(替换)
你眼中的程序猿 别人眼中的程序猿#xff0c;是什么样子#xff1f;打字如飞#xff0c;各种炫酷的页面切换#xff0c;一个个好似黑客般的网站破解。可现实呢#xff1f; 二指禅的敲键盘#xff0c;写一行代码#…参考链接 在Python中切换大小写(替换)
你眼中的程序猿 别人眼中的程序猿是什么样子打字如飞各种炫酷的页面切换一个个好似黑客般的网站破解。可现实呢 二指禅的敲键盘写一行代码查半天百度…那么如何能让我们从外表上变得更像一个程序猿呢当然是训练我们的打字速度了啊
训练打字
很羡慕那些盲打速度炒鸡快的人看起来就比较炫酷。但很多IT男打字速度并不快甚至还有些二指禅的朋友们太影响装13效果了。那么今天我们就来使用Python写一个打字训练的小工具吧。先来看看使用效果… 我们使用Python内置的GUI模块Tkinter来编写一个打字测试的小工具。点击开始测试系统随机生成20个字符串然后用户按照题目进行作答后点击交卷系统将对比我们的输入结果来计算正确率并使用涂色将系统与用户的答案进行对比。
生成随机数
首先我们需要生成键盘上的字符。当然我们可以0-9A-Z,a-z,!-)等等的一个个枚举出键盘上的按键。但有没有更快捷的操作呢你需要了解下string模块。这里介绍下几个string默认提供的内容
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_uppercase
string.printable string.ascii_letters string.digits string.whitespace string.punctuation
剩余的内容我们只需要进行相关读写判断即可整体代码如下
# -*- coding: utf-8 -*-
# Author : 王翔
# JianShu : 清风Python
# Date : 2019/8/25 20:59
# Software : PyCharm
# version Python 3.7.3
# File : TypingTest.py from tkinter import *
import random
import string
from datetime import datetime root Tk()
root.title(Python打字练习题 By:清风Python)
Label(root, text系统题目:).grid(row0)
Label(root, text用户作答:).grid(row1)
Label(root, text考试结果:).grid(row2)
v1 StringVar()
v2 StringVar()
v3 StringVar()
v1.set(点击开始测试按钮开始出题)
e1 Entry(root, textv1, statedisabled, width40, font(宋体, 14))
e2 Entry(root, textvariablev2, width40, font(宋体, 14))
e3 Label(root, textvariablev3, width40, font(宋体, 10), foregroundred)
e1.grid(row0, column1, padx10, pady20)
e2.grid(row1, column1, padx10, pady20)
e3.grid(row2, column1, padx10, pady20)
text Text(root, width80, height7)
text.grid(row4, column0, columnspan2, pady5) 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(stateactive) 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, backgroundred) user_only1.config(statedisabled) TypingTest TypingTest()
Button(root, text开始测试, width10, commandTypingTest.create_exam).grid(row3, column0, stickyW, padx30, pady5)
user_only1 Button(root, text交卷, width10, commandTypingTest.score, statedisable)
user_only1.grid(row3, column1, stickyE, padx30, pady5) mainloop()
我们将最终的代码打包成exe工具即可脱离python环境在单独的电脑上执行exe文件玩我们自己的打字练习题了 The End
OK,今天的内容就到这里如果觉得内容对你有所帮助欢迎点击文章右下角的“在看”。 期待你关注我的公众号清风Python如果觉得不错希望能动动手指转发给你身边的朋友们。
作者清风Python 相关推荐
Python大神编程常用4大工具,你用过几个?
使用Python连接Kerberos的Presto
基于Atlas 200 DK的原版YOLOv3基于Darknet-53实现Python版本
赶在520之前程序员如何用Python送上最特别的“我爱你”表白
【Python算法】分类与预测——Python随机森林
Python一秒搭建ftp服务器帮助你在局域网共享文件