Проблема с конструкцией if-elif-else

Рейтинг: 0Ответов: 1Опубликовано: 01.07.2023
age = int(input("Сколько лет: "))
if age < 2:
    msg = 'Младенец'
elif age >= 2 < 4:
    msg = 'Малыш'
elif age >= 4 < 13:
    msg = 'Ребёнок'
elif age >= 13 < 20:
    msg = 'Подросток'
elif age >= 20 < 60:
    msg = 'Взрослый'
elif age >= 60:
    msg = 'Пожилой человек'
else:
    print('None')
print(f'Тебе {age} лет и ты у нас {msg}!')

Решаю задачу по Python и не могу понять почему при указании возраста ответ постоянно с первого elif ,берется при любой цифре за исключением if если указать число < 2

Ответы

▲ 3Принят

Потому что ваши elif на самом деле выглядят так:

(age >= 2) < 4

а age >= 2 это либо 1 либо 0 -> это всегда <4. Вот так работать будет:

elif 2 <= age < 4:

или вот так:

elif age >= 2 and age < 4: