Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab4 отчет

.docx
Скачиваний:
26
Добавлен:
28.06.2021
Размер:
53.43 Кб
Скачать

Федеральное агентство связи

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное

учреждение высшего образования

Московский технический университет связи и информатики»

 

Кафедра «Сетевых информационных технологий и сервисов»

 

Отчёт по лабораторной работе №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 – Результат работы программы.

Можно сделать вывод о том, что программа прошла тестирование успешно.

Вывод: В данной лабораторной работе были разработаны

  1. Программа, позволяющая увеличивать значение времени

  2. Программа, позволяющая находить ближайшую к заданной странице главу.

Соседние файлы в предмете Программирование на Python