По номеру месяца вывести кол-во дней в нем
user_input = input('Введите, пожалуйста, номер месяца: ')
month = int(user_input)
print('Вы ввели', month)
month31 = [1, 3, 5, 7, 8, 10, 11]
month30 = [4, 6, 9, 12]
month28 = [2]
if month == month31:
print(31)
elif month == month30:
print(30)
elif month == month28:
print(28)
else: print('Нет такого месяца, ты пьян, иди домой.')
Выводит постоянно, что нет такого месяца. Направьте на путь истинный..
Ответы (3 шт):
Автор решения: Эникейщик
→ Ссылка
month - число, все остальные - списки. Число никогда не равно списку.
Замени == на in.
И поменяй 11 и 12 местами.
Автор решения: Zhihar
→ Ссылка
а почему бы просто так не сделать:
day = int(input())
days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,]
print(days[day - 1] if 1 <= day <= 12 else "пьян")
или так:
days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,]
print(days[day] if 1 <= day <= 12 else "пьян")
или даже так:
days = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31,}
print(days.get(day, "пьян"))
или также, но чуть покороче
days = dict(zip(range(1, 13), [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,]))
print(days.get(day, "пьян"))
Автор решения: Mer4
→ Ссылка
Держи, дружище.
month = int(user_input)
print('Вы ввели', month)
month31 = [1, 3, 5, 7, 8, 10, 11]
month30 = [4, 6, 9, 12]
month28 = [2]
for i in month31:
if month == i:
print(31)
for l in month30:
if l == month30:
print(30)
for k in month28:
if k == month28:
print(28)
if month >= 13:
print('Пьян, иди домой!')
else:
pass