Время выполнения
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")