Skip to content

Commit b469b8d

Browse files
committed
add a helper function parse_os_input to handle a variety of ways end user can type an OS
1 parent 6c155a8 commit b469b8d

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

prep-exercises/exercise_eleven.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,18 @@ class Laptop:
6565
print("Enter a numeric value for the age!")
6666
sys.exit(1)
6767

68-
preferred_operating_system_input = input("What's your preferred operating system? ")
68+
69+
def parse_os_input(user_input: str) -> operatingSystem:
70+
clean = user_input.lower().replace(" ", "")
71+
72+
for os in operatingSystem:
73+
if os.value.lower().replace(" ", "") == clean:
74+
return os
75+
76+
print("Invalid operating system!", file=sys.stderr)
77+
sys.exit(1)
78+
79+
preferred_operating_system_input = parse_os_input(input("What's your preferred operating system? "))
6980

7081

7182

@@ -74,10 +85,11 @@ def person_builder(name_input: str, age_input:int, preferred_operating_system_in
7485
return Person(name_input, age_input, preferred_operating_system_input)
7586

7687

88+
7789
def laptops_counter(preferred_operating_system_input:str) ->int:
7890
sum = 0
7991
for laptop in laptops:
80-
if preferred_operating_system_input == str(laptop.operating_system):
92+
if preferred_operating_system_input == laptop.operating_system:
8193
sum += 1
8294
return f"There are {sum} laptops with {preferred_operating_system_input} operating system"
8395

0 commit comments

Comments
 (0)