From 29361dccb9fde6d90f93bef23cd89cf1a1ab0499 Mon Sep 17 00:00:00 2001 From: Samuel Cuerrier <6297553@cstjean.qc.ca> Date: Wed, 10 Sep 2025 20:45:21 -0400 Subject: [PATCH] commit for the Python WPM Typing program --- .../samuelcuerrier/typing_speed_tester.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 week1_projects/samuelcuerrier/typing_speed_tester.py diff --git a/week1_projects/samuelcuerrier/typing_speed_tester.py b/week1_projects/samuelcuerrier/typing_speed_tester.py new file mode 100644 index 0000000..d626b55 --- /dev/null +++ b/week1_projects/samuelcuerrier/typing_speed_tester.py @@ -0,0 +1,31 @@ +import time + +target_text = "The quick brown fox jumps over the lazy dog" + +print("Type the following text:") +print(">>>", target_text) +input("\nPress Enter when you're ready... ") + +start = time.time() +typed_text = input("\nStart typing here:\n") +end = time.time() + +elapsed_time = end - start +elapsed_minutes = elapsed_time / 60 + +target_words = target_text.split() +typed_words = typed_text.split() + +wpm = len(typed_words) / elapsed_minutes if elapsed_minutes > 0 else 0 + +matches = 0 +for i in range(min(len(typed_text), len(target_text))): + if typed_text[i] == target_text[i]: + matches += 1 + +accuracy = (matches / len(target_text)) * 100 + +print("\n--- Typing Test Results ---") +print(f"Time taken: {elapsed_time:.2f} seconds") +print(f"Words per minute (WPM): {wpm:.2f}") +print(f"Accuracy: {accuracy:.2f}%")