Skip to content

Commit 5cc2330

Browse files
Fix: enhance user input validation for name using regular expressions. Embed minimum age variable into error message for accuracy
1 parent 8063ab7 commit 5cc2330

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

prep-exercises/h_enums.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import re
12
import sys
23
from dataclasses import dataclass
34
from enum import Enum
@@ -59,13 +60,14 @@ def find_possible_laptops(available_laptops: List[Laptop], current_person: Perso
5960
def user_prompt() -> Person:
6061
try:
6162
name = (input("Please enter your first name: ")).strip()
62-
if not name.isalpha():
63-
raise ValueError("Name must contain only alphabetic characters.")
63+
# use 're' import (regular expression) for regex validation for allowed name characters
64+
if not re.fullmatch(r"[A-Za-z\- ]+", name):
65+
raise ValueError("Name must contain only alphabetic characters, hyphens, or spaces.")
6466

6567
age = int(input("Please enter your age: "))
6668
minimum_age = 18
6769
if age < minimum_age:
68-
raise ValueError("Age must be 18 or over.")
70+
raise ValueError(f"Age must be {minimum_age} or over.")
6971

7072

7173
# define valid OS options

0 commit comments

Comments
 (0)