Защита от ввода отрицательного числа

Код выводит возраст:

def retrieve_age(person):
      try: 
        return int(person["age"])
      except ValueError: 
        print("Вы некорректно ввевили возраст")
print(retrieve_age({"name" : "Max", "age": 5}))

Как сделать защиту от отрицательного ввода?


Ответы (2 шт):

Автор решения: gil9red

Получить значение, проверить на отрицательное число и выбросить исключение:

def retrieve_age(person):
    try:
        age = int(person["age"])
        if age < 0:
            raise ValueError()
        return age
    except ValueError: 
        print("Вы некорректно ввели возраст")

print(retrieve_age({"name" : "Max", "age": 5}))
→ Ссылка
Автор решения: whizz169

Ну вот еще способ, если очень хочется:

def retrieve_age(person):
    try:
        age = int(person["age"])
        assert age > 0
        return int(person["age"])
    except AssertionError:
        return "Вы некорректно ввевили возраст"

print(retrieve_age({"name": "Max", "age": -55}))
→ Ссылка