盲法介紹及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六鍵。這樣十指的分工就完成了,只要記住各鍵的位置和各指的按鍵就能夠練習盲打了。app

3.盲打技巧

  如今大部分用的是拼音輸入法的盲打,可是大部分人用的只有食指,雖然也能夠時間長進行記憶,可是並不適用與正確的盲打方法。
  有關五筆,形碼的盲打就不介紹了。dom

4. 圖片



三:鍵盤字母排列順序的口訣

  衆所周知,計算機鍵盤字母是按一種雜亂無章的順序排列的。要死記硬背記住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è)。oop

四:python打字練習系統

from 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 \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))
                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()

效果以下:
學習

相關文章
相關標籤/搜索