Module (32%)
Section (64%)
Лабораторная работа

Время выполнения

15-20 минут

Уровень сложности

Средний

Требования

Лабораторная работа 4.3.1.6

Цели

Ознакомить учащегося с:

  • проектированием и написанием параметризованных функций;
  • использованием оператора return;
  • использованием собственных функций.

Сценарий

Ваша задача - написать и протестировать функцию, которая принимает два аргумента (год и месяц) и возвращает количество дней для данной пары год-месяц (в то время как только февраль чувствителен к значению year, Ваша функция должна быть универсальной).

Начало функции готово. Теперь убедите функцию вернуть None, если ее аргументы не имеют смысла.

Конечно, Вы можете (и должны) использовать ранее написанную и протестированную функцию (LAB 4.3.1.6). Это может быть очень полезно. Мы рекомендуем Вам использовать список с указанием длины месяцев. Вы можете создать его внутри функции - этот трюк значительно сократит код.

Мы подготовили тестирующий код. Развейте его, чтобы включить больше тестовых случаев.


Code

def is_year_leap(year):
#
# Your code from LAB 4.3.6.
#

def days_in_month(year, month):
#
# Write your new code here.
#

test_years = [1900, 2000, 2016, 1987]
test_months = [2, 2, 1, 11]
test_results = [28, 29, 31, 30]
for i in range(len(test_years)):
yr = test_years[i]
mo = test_months[i]
print(yr, mo, "->", end="")
result = days_in_month(yr, mo)
if result == test_results[i]:
print("OK")
else:
print("Failed")
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×