Lab4 отчет
.docxФедеральное агентство связи
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Московский технический университет связи и информатики»
Кафедра «Сетевых информационных технологий и сервисов»
Отчёт по лабораторной работе №4 по дисциплине «Программирование на языке Python»
Выполнил студент группы
Москва, 2020
Задание
1: Необходимо
добавить часы, минуты, секунды к заданному
времени. На вход дается строка hh:mm:ss
,
и три числа hrs
,
mins
и sec
означающие часы, минуты и секунды,
необходимые добавить к данной строке.
На выходе должна быть получена строка
формата hh:mm:ss
Решение: Для решения задачи воспользуемся встроенной библиотекой datetime, а точнее методами strptime, strftime класса datetime и функцией timedelta. Код функции time_adjust() представлен ниже:
def time_adjust(time: str, d_hour: int, d_minute: int, d_second: int):
pattern = "%H:%M:%S"
new_time = d.datetime.strptime(time, pattern) + d.timedelta(seconds=d_second, minutes=d_minute, hours=d_hour)
return d.datetime.strftime(new_time, pattern)
Функция была протестирована на трех значениях (рисунок 1).
Рисунок 1 – Значения для тестирования функции
Результат работы программы представлен на рисунке 2.
Рисунок 2 – Результат работы программы
Можно сделать вывод о том, что программа прошла тестирование успешно.
Задание 2: Создать функцию, которая вернет ближайшую к текущей страницы главу. Если две главы одинаково близко, то выбирается та, которая находится на большей по порядку странице.
Решение: Создадим цикл по словарю, содержащему название главы и номер страницы, с которой она начинается, и будем высчитывать расстояние до заданной страницы. Необходимо найти 2 главы, между началами которых находится страница, определить ближайшую и выйти из цикла. Код программы представлен ниже:
def nearest_chapter(book_dict: dict, page: int):
delta = 0
flag = True
curr_chapt = ""
for chapter, f_page in book_dict.items():
if flag:
delta = abs(f_page - page)
curr_chapt = chapter
flag = False
else:
if abs(f_page - page) <= delta:
curr_chapt = chapter
else:
return curr_chapt
return curr_chapt
Протестируем программу на 3-х примерах (рисунок 3):
Рисунок 3 - Значения для тестирования функции
Результат работы программы представлен на рисунке 4:
Р исунок 4 – Результат работы программы.
Можно сделать вывод о том, что программа прошла тестирование успешно.
Вывод: В данной лабораторной работе были разработаны
Программа, позволяющая увеличивать значение времени
Программа, позволяющая находить ближайшую к заданной странице главу.