<label id="bh7tp"><big id="bh7tp"></big></label>

<em id="bh7tp"><tr id="bh7tp"><u id="bh7tp"></u></tr></em>
<th id="bh7tp"></th>

<li id="bh7tp"><acronym id="bh7tp"></acronym></li>
  • <em id="bh7tp"></em>

    <tbody id="bh7tp"><pre id="bh7tp"></pre></tbody>
  • Python教程自學網歡迎您來學習!
    當前位置: 首頁 > Pyhon開發 > Python打字訓練的程序實現

    Python打字訓練的程序實現

       

    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_uppercase
    string.printable?=
    ????string.ascii_letters?+?string.digits
    ????+?string.whitespace?+?string.punctuation

    2、判斷剩余內容的相關讀寫。

    from?tkinter?import?*
    import?random
    import?string
    from?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實現打字訓練程序的方法,希望對大家有所幫助。

    人人爽人人澡人人人妻
    <label id="bh7tp"><big id="bh7tp"></big></label>

    <em id="bh7tp"><tr id="bh7tp"><u id="bh7tp"></u></tr></em>
    <th id="bh7tp"></th>

    <li id="bh7tp"><acronym id="bh7tp"></acronym></li>
  • <em id="bh7tp"></em>

    <tbody id="bh7tp"><pre id="bh7tp"></pre></tbody>