Skip to content

Commit 4cd0d89

Browse files
authored
Enhance age input validation and output display
Added error handling for age input and improved output formatting.
1 parent 002a78b commit 4cd0d89

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

prep-sprint5/enums.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from dataclasses import dataclass
1616
from enum import Enum
1717
from typing import List
18+
import sys
1819

1920
class OperatingSystem(Enum):
2021
MACOS = "macOS"
@@ -63,7 +64,13 @@ def find_possible_laptops(laptops: List[Laptop], person: Person) -> List[Laptop]
6364

6465
# receiving values from input to create person:
6566
name = input("Enter your name: ")
66-
age = int(input("Enter your age: "))
67+
68+
try:
69+
age_input = input("Enter your age: ")
70+
age = int(age_input)
71+
except ValueError:
72+
print("Error: Age must be a number.", file=sys.stderr)
73+
sys.exit(1)
6774

6875
print("Choose preferred operating system:")
6976
print("1. macOS")
@@ -79,9 +86,17 @@ def find_possible_laptops(laptops: List[Laptop], person: Person) -> List[Laptop]
7986

8087
preferred_os = os_map.get(choice)
8188

89+
if preferred_os is None:
90+
print("Error: Invalid operating system selection.", file=sys.stderr)
91+
sys.exit(1)
92+
8293
person = Person(name=name, age=age, preferred_operating_system=preferred_os)
8394

84-
print("Created person:", person)
95+
print(
96+
f"\nWelcome {person.name}! "
97+
f"Age: {person.age}, "
98+
f"Preferred OS: {person.preferred_operating_system.value}"
99+
)
85100
# counts how many laptops there are with that OS
86101
matches_count = sum(
87102
1 for laptop in laptops

0 commit comments

Comments
 (0)