Не работает поиск переменной в списке
Всем добрый день! Задача - выяснить, есть ли номер месяца в списке и если да - то напечатать время года. Вроде все просто, но поиск переменной в списке не работает. Причем ошибок не выдаёт, и отдебажить тоже невозможно, т.к. на этапе if - просто наступает тишина. Что не так в коде?
month = input("Введите номер месяца в виде целого числа:")
if not month.isdigit():
print("Неверный формат числа")
exit()
spring = [3, 4, 5]
if month in spring:
print("Весна")
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
можно вообще в лоб, чтоб не думать :)
months = {
"1": "зима", "2": "зима", "3": "весна", "4": "весна", "5": "весна", "6": "лето",
"7": "лето", "8": "лето", "9": "осень", "10": "осень", "11": "осень", "12": "зима",
}
month = input("Введите номер месяца в виде целого числа:")
res = months.get(month, "фигню ввели")
print(res)
Автор решения: Dmitry
→ Ссылка
Можно побаловаться и вот так
def which_season(month:int):
if not isinstance(month, int):
print(f"Тип данных не подходит, нужен int, а не {type(month)}")
return None
if month not in range(1,13):
print(f"Да, что же вы мне пихаете? {month} не лежит в промежутке от 1 до 12 ")
return None
return ["Зима", "Весна", "Лето", "Осень"][int(round((month % 12) / 3, 1))]
а теперь вот так
for i in range(1,13):
which_season(i)
"""вывод
'Зима'
'Зима'
'Весна'
'Весна'
'Весна'
'Лето'
'Лето'
'Лето'
'Осень'
'Осень'
'Осень'
'Зима'
"""
Или
>>> which_season("bla")
Тип данных не подходит, нужен int, а не <class 'str'>
>>> which_season(13)
Да, что же вы мне пихаете? 13 не лежит в промежутке от 1 до 12