python打字_盲法介绍及python盲打练习系统

目录

一:盲打简介与优点

二:如何练习

三:键盘字母排列顺序的口诀

四:python打字练习系统

一:盲打简介与优点

??简介:盲打是指打字的时候不用看键盘或看稿打字时的视线不用来回于文稿和键盘之间的行为,盲打可使输入的速度增加。盲打要求打字的人对于键盘有很好的定位能力。

??优点:通过练习盲打来提高打字的速度,让自己的手速跟上自己思维的速度,做到心到手到,这样不仅可以提高效率,而且可以提高自己的注意力和思维的活跃程度。ACM集训也对盲打有要求。

??盲打无论对于打字员还是程序员来说,都是很有必要掌握的技巧,设想一下,同样一个算法,除去思路,别人用一两分钟写完了,你加上看键盘的时间却用了七八分钟,岂不是很浪费时间呢。有时候差距就是这样拉大的。

二:如何练习

1.手指位置

??五指微下屈,两个大拇指控制空格键,左手另四指分别放在A、S、D、F四键上,右手另四指分别放在J、K、L、:键上,这样左右两个食指就分别放在F键和J键,这两个键上都有上小凸起,用手一摸就摸到了。

2.手指分工

??两个拇指只负责一个空格键,另外六指都是控制一个竖排的键,按照键盘的位置,向右倾斜,左手小拇指是Q、A、Z三键,右手小拇指是P、:、?三键,为什么说是六指呢?因为两个食指的任务繁重一点,食指要控制两排竖排的键,如:右食指是U、J、M、Y、H、N六个键,左食指是R、F、V、T、G、B六键。这样十指的分工就完成了,只要记住各键的位置和各指的按键就可以练习盲打了。

3.盲打技巧

??现在大部分用的是拼音输入法的盲打,但是大部分人用的只有食指,虽然也可以时间长进行记忆,但是并不适用与正确的盲打方法。

??有关五笔,形码的盲打就不介绍了。

4. 图片

1735560-20191130132625922-1818581550.jpg

三:键盘字母排列顺序的口诀

??众所周知,计算机键盘字母是按一种杂乱无章的顺序排列的。要死记硬背记住26个无序字母的排列顺序,显然很困难。而不记住键盘字母的排列顺序,势必影响学习打字和提高打字速度。(当初键盘设计者就是怕打字太快,损坏键盘,故意打乱了字母的排列顺序。)

??下面的口诀可以快速记录键盘位置:

??七(qī)碗(wǎn)鹅(é)肉(ròu)汤(tāng),已( yǐ)无(wú)一(yī)我(wǒ)婆(pó)。

??爱(ài)上(shǎng)豆(dòu)腐(fǔ)羹(gēng)。回(huí)家(jiā)快(kuài)乐(lè)。

四:python打字练习系统

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81from tkinter import *

import random

import string

from datetime import datetime

root = Tk()

root.title("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

" % str(self.time_list[-1]))

user_only1.config(state='active')

def score(self):

wrong_index = []

self.time_calc().__next__()

text.insert(END, "结束:%s

" % 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))

text.insert(END, "题目:%s

" % self.letterStr)

tag_info = list(map(lambda x: '4.' + str(x + 3), wrong_index))

text.insert(END, "作答:%s

" % 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()

效果如下:

1735560-20191130132341595-1331996423.jpg

1735560-20191130132348570-147248478.jpg

1735560-20191130132357256-862838074.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值