Skip to content

Commit 0f19710

Browse files
committed
SpeedTypingTestInPython.py
1 parent b8a65c4 commit 0f19710

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

SpeedTypingTestInPython.py

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
### Speed Typing Test in python ###
2+
3+
# Imported Library
4+
5+
import time
6+
import threading
7+
8+
# Created Class
9+
10+
class tester:
11+
def __init__(self, paragraph):
12+
self.correctWords = []
13+
self.incorrectWords = {}
14+
self.typedWords = []
15+
self.totalWords = []
16+
self.input = None
17+
self.paragraph = paragraph
18+
self.accuracy = 0
19+
self.time = 0
20+
self.wordPermin = 0
21+
self.run()
22+
23+
#### Defined the Variable ###
24+
25+
def clock(self):
26+
while len(self.typedWords) == 0:
27+
self.time += 1
28+
time.sleep(1)
29+
30+
def run(self):
31+
threading.Thread(target=self.clock).start()
32+
threading.Thread(target=self.testSpeed).start()
33+
34+
def testSpeed(self):
35+
print('\n\n'+self.paragraph+'\n\n')
36+
self.input = str(input('\t\n'+'Type The Word Which You Want To Know the Speed As well as Incorrect \n\n'))
37+
self.totalWords = self.paragraph.split(' ')
38+
self.typedWords = self.input.split(' ')
39+
40+
try:
41+
for i in range(len(self.typedWords)):
42+
if(self.typedWords[i] == self.totalWords[i]):
43+
self.correctWords.append(self.typedWords[i])
44+
else:
45+
self.incorrectWords.update({self.totalWords[i] : self.typedWords[i]})
46+
47+
except Exception as e:
48+
print(e)
49+
50+
51+
self.accuracy = len(self.correctWords)/len(self.typedWords) * 100
52+
self.wordPerMin = len(self.typedWords) / (self.time/60)
53+
54+
print('\n\nResult :--')
55+
print(f'Accuracy: -- {self.accuracy}')
56+
print(f'Word Per Minute :-- {self.wordPerMin}')
57+
print(f'Incorrect Words :-- {self.incorrectWords}')
58+
59+
Mytester = tester("You know you're a programmer when you spend a day to find the problem, and then fix it with one line of code.")
60+
61+
### The Code is ended, Thank You ####

0 commit comments

Comments
 (0)