Top.Mail.Ru
Ответы

Сколько дней в месяце Python

В нашем приложении есть статистика количества шагов по месяцам. Нам нужно «научить» его учитывать, что в одних месяцах 30 дней, в других — 31, а в феврале вообще 28 (если год не високосный).

Январь — 31.
Февраль — 28 (29).
Март — 31.
Апрель — 30.
Май — 31.
Июнь — 30.
Июль — 31.
Август — 31.
Сентябрь — 30.
Октябрь — 31.
Ноябрь — 30.
Декабрь — 31.
Есть порядковый номер месяца (1, 2, ..., 12). Напиши программу, которая выводит на экран количество дней в этом месяце. Будем считать, что заданный год не високосный.

Пример 1
Ввод Вывод
1 31

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
12
 m = int(input()) 
print(28 + ([3, 2][m in (4, 6, 9, 11)] * (m != 2))) 
Аватар пользователя
Мастер
123
 month = [30, 28, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31] 
number = input('') 
print(month[number-1]) 
Аватар пользователя
Мастер
123456
 a = int(input()) 
match a: 
    case 1 | 3 | 5 | 7 | 8 | 10 | 12: print('31') 
    case 2: print('28') 
    case _: print('30') 
 

С match-case

Аватар пользователя
Мастер
1234567891011121314151617181920
 def days_in_month(month_number): 
  """ 
  Функция, которая определяет количество дней в месяце. 
 
  Args: 
      month_number: Порядковый номер месяца (1, 2, ..., 12). 
 
  Returns: 
      Количество дней в месяце. 
  """ 
  if month_number in (1, 3, 5, 7, 8, 10, 12): 
    return 31 
  elif month_number == 2: 
    return 28 
  else: 
    return 30 
 
# Пример использования 
month_number = int(input("Введите порядковый номер месяца: ")) 
print(f"В месяце {month_number} {days_in_month(month_number)} дней.")