Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Den gennemsnitlige skrivehastighed er omkring 40 ord i minuttet. Hvis du vil være produktiv i dit arbejde, bør du tilstræbe at skrive mindst 65 til 70 ord i minuttet. At øge din skrivehastighed vil forbedre din effektivitet, hvilket vil øge opgaver som dataindtastning, copywriting, transskription og administrative roller.

For at teste dine skrivefærdigheder kan du bygge en simpel skrivetestapplikation ved hjælp af Python. Ved at bruge dette kan du få præcise resultater og udvikle en vanedannende vane for at blive bedre over tid.

Tkinter- og Random-modulerne

For at udvikle typetestspillet skal du bruge tkinter modul og tilfældig modul. Tkinter giver dig mulighed for at oprette desktop-applikationer. Det tilbyder en række forskellige widgets som knapper, etiketter, tekstbokse og layoutadministratorer, der gør det nemt at udvikle applikationer uden for meget indsats.

instagram viewer

Bortset fra disse kommer den med nyttige biblioteker, lærredsobjekter og HTML/XML/PDF-parsere. For at installere Tkinter i dit system skal du åbne terminalen og udføre:

pip installere tkinter

Random-modulet har en samling funktioner til at generere tilfældige tal. Du kan bruge disse rutiner til at producere blandede sekvenser, spilbevægelser og pseudo-tilfældige heltal. Nogle af dens almindelige anvendelser inkluderer simulering af terningkast, blandelister, en tilfældig adgangskodegenerator, og i spil som hånd cricket og tal gætte.

Sådan bygger du skrivetestapp ved hjælp af Python

Følg disse trin for at bygge en skrivetestapplikation ved hjælp af Pythons Tkinter og Random-modul.

Du kan finde kildekoden til Typing Test App Using Python og word-tekstfilen i denne GitHub-depot.

Begynd med at importere Tkinter og Random-modulet. Initialiser Tkinter-forekomsten og vis rodvinduet. Indstil dimensionerne i pixels, titlen og baggrundsfarven for vinduet.

fra tkinter importere *
importere tilfældig
fra tkinter importere beskedboks

Hovedskærm = Tk()
Mainscreen.geometry('1000x600')
Mainscreen.title('MakeUseOf skrivespil')
Mainscreen.config(bg="aqua")

Download listen over ord fra GitHub-lageret og placer den i samme mappe som Python-scriptet for nem reference. Læs indholdet af tekstfilen og brug split()-funktionen til at gemme hvert ord på en liste. Initialiser score, missede og tæl1 variabler til nul og tidsvariablen til 60.

fil1 = åben('words.txt', 'r')
words = file1.read().split()
score = misset = tæl1 = 0
tid = 60

Definer en funktion med navn given time() der refererer til de globale variabler nævnt ovenfor. Hvis den resterende tid er større end nul, skal du reducere den med én og vise den på etiketten for timertælling (angivet i den senere halvdel af koden). Brug efter() funktion til at kalde funktionen giventime() tilbage efter en forsinkelse på 1.000 millisekunder (et sekund).

Hvis tiden er forbi, skal du ændre indholdet af startetiketten til Game Over og samtidig vise scoren på spilinstruktionsetiketten. Send de tilsvarende variable til format() funktion til at vise Hit, Miss og Total Score.

defgivet tidspunkt():
global tid, score, misset

hvis tid > 0:
tid -= 1
timercount.configure (tekst=tid)
timertælling.efter(1000, givet tidspunkt)
andet:
startlabel.configure (text='Game Over!')
gameinstruction.configure (text='Hit = {} | Frøken = {} | Samlet score = {}'.format (score, missed, score - missed))

Giv titlen og beskeden videre til askokcancel() fungere. Hvis det modtagne svar i dialogboksen vurderes til at være sandt, skal du stoppe applikationen ved at bruge Afslut() fungere.

 rr = messagebox.askokcancel('Game Over!', 'Tryk på Ok for at afslutte')

hvis rr == Rigtigt:
Afslut()

Definer en funktion med navn spil() der tager hændelse som et input-argument. Referer til de globale variabler. Hvis tidsvariablen er lig med 60, skal du udføre funktionen giventime() for at starte nedtællingen. Mens spillet er i gang, skal du ændre startetiketten til Fortsæt og spilinstruktionsetiketten for at trykke på Enter efter at have indtastet ordet ved hjælp af configure()-funktionen.

defspil(begivenhed):
global score, misset

hvis tid == 60:
given time()

startlabel.configure (text='Blive ved..')
gameinstruction.configure (text='Tryk på Enter efter at have skrevet ordet')

Hent ordet indtastet i wordentry ved hjælp af få() funktion og kontroller, om det er lig med det ord, der vises på skærmen. Hvis ja, forøg scoren og afspejle den på partituretiketten. Ellers skal du øge den mistede variabel med én.

Omarranger emnerne i ordlisten, og vis det første element. Brug slet() funktion fra nul til sidste indeks på wordentry-widget'en for at rydde indholdet.

hvis wordentry.get() == labelforward['tekst']:
score += 1
scorelabelcount.configure (text=score)
andet:
savnet += 1

tilfældig.shuffle(ord)
labelforward.configure (tekst=ord[0])
blivetry.slet(0, ENDE)

Indstil startlabel, labelforward, scorelabel, scorelabelcount, labelfortimer, timercount og spilinstruktion ved hjælp af Label-widgetten. Etiket-widgetten tager i det overordnede vindue, hvor du vil placere den, den tekst, den skal vise, skrifttype, størrelse, farve og stil sammen med etikettens baggrundsfarve.

Send X- og Y-koordinaterne til placere() metode til at organisere etiketterne på en bestemt position.

startlabel = Label (Mainscreen, text='Skrivespil',font=('Arial',30,'kursiv fed'),bg='sort',fg='hvid')
startlabel.place (x=375, y=50)

labelforward = Label (Mainscreen, text=' ',font=('Arial',45,'kursiv fed'),fg='grøn')
labelforward.place (x=350, y=240)

scorelabel = Etiket (Mainscreen, text='Din score:',font=('Arial',25,'kursiv fed'),fg='rødbrun')
scorelabel.place (x=110, y=100)

scorelabelcount = Etiket (Mainscreen, text=score, font=('Arial',25,'kursiv fed'),fg='lilla')
scorelabelcount.place (x=250, y=180)

labelfortimer = Etiket (Mainscreen, text='Tid tilbage:',font=('Arial',25,'kursiv fed'),fg='rødbrun')
labelfortimer.place (x=700, y=100)

timercount = Label (Mainscreen, text=time, font=('Arial',25,'kursiv fed'),fg='lilla')
timercount.place (x=700, y=180)

gameinstruction = Etiket (Mainscreen, text='Tryk på Enter efter at have skrevet ordet',font=('Arial',25,'kursiv fed'),fg='grå')
gameinstruction.place (x=250, y=500)

Definer en indtastningswidget, der accepterer det ord, du skriver. Indstil det overordnede vindue, du vil placere det i, skrifttype, størrelse, stil sammen med kantstørrelsen og egenskaben Justify. Brug metoden place() til at placere indtastningswidgetten og fokus_sæt() metode til at aktivere indtastningsfeltet til input.

wordentry = Indgang (Mainscreen, font=('Arial',25,'kursiv fed'), bd=10, retfærdiggøre='centrum')
wordentry.place (x=350, y=330)
blivetry.fokus_sæt()

Et vigtigt skridt er at binde Enter-tasten til en begivenhed i Tkinter-vinduet. Dette sikrer, at når afspilleren trykker Gå ind en bestemt funktion ville udføre. For at opnå dette skal du bestå streng og game() fungerer som parametre til binde() fungere. Det mainloop() funktion fortæller Python at køre Tkinter-hændelsesløkken og lytte efter hændelser (såsom knaptryk), indtil du lukker vinduet.

Mainscreen.bind('', spil)
mainloop()

Sæt al koden sammen, og kør koden for at spille skrivetestspillet lige ved hånden.

Output af Python Typing Test App

Når du kører programmet ovenfor, vises et vindue, der er 1.000 pixels bredt og 600 pixels højt, med en aqua-baggrundsfarve, en resultattavle, nedtællingsur og en instruktion til at starte spillet.

Når du trykker på Enter, begynder spillet, og for hvert korrekt svar øger programmet scoren en.

Når tiden er forbi, viser programmet det endelige resultat sammen med en dialogboks for at afslutte spillet.

Tkinter GUI-ideer til begyndere

Tkinter er et meget kraftfuldt værktøj, som du kan bruge til at bygge enkle til fuldt funktionelle applikationer, der er attraktive og robuste. Selv en nybegynder kan bruge Tkinter. Et par eksempler på projekter, du kan bygge, er et quizspil, en adressebog, en huskeliste eller en billedfremviser.

Hvis du vil bevæge dig ud over Tkinter, er nogle af de populære alternativer Qt-designer, Kivy, Toga og BeeWare. Alle disse rammer er alsidige og understøtter udvikling på tværs af platforme, så du kan køre dine applikationer problemfrit i ethvert miljø.