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

Lab3 отчет

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

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

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

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

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

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

 

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

 

Отчёт по лабораторной работе №3 по дисциплине «Программирование на языке Python»

 

Выполнил студент группы

Москва, 2020

Задание 1: Создать функции, которая будет строить лестницу, используя знаки ‘_’ и ‘#’. Положительное значение обозначают, что направление лестницы направленно вверх и вниз для отрицательных значений.

Решение: Создадим цикл по количеству ступенек в лестнице и сформируем необходимую по условию задания строку. Исходный код программы представлен ниже:

def staircase(steps: int):

s = ""

for step in range(1, abs(steps)+1):

if steps > 0:

s += ("_" * (steps - step) + "#" * step + "\n")

else:

s += ("_" * (step - 1) + "#" * (abs(steps) - step + 1) + "\n")

return s

Результат работы программы для значений 3 и -8 представлен на рисунке 1:

Рисунок 1 – Результат работы программы.

Задание 2: Имеется строка из символов в нижнем регистре ascii[["a".."z"]]. Нужно сократить строку следующим образом: берется пара соседних символов и если они одинаковы, то они удаляются. Например, aab должно превратится в b. Нужно удалить как можно больше символов. Если результирующая строка пустая, нужно вернуть "Empty String"

Решение: Разработаем функцию, которая будет проходить по списку, сформированному из строки, и удалять первую пару повторяющихся букв. Возвращать функция будет либо строку “Empty String” (если поступившая ей на вход строка - пустая), либо строку без повторов, рекурсивно вызвав саму себя. Исходный код программы представлен ниже:

def super_reduced_string(word: str):

if len(word) == 0:

return "Empty String"

word_list = list(word)

for i, v in enumerate(word_list):

try:

if word_list[i+1] == v:

word_list.pop(i + 1)

word_list.pop(i)

return super_reduced_string("".join(word_list))

except IndexError:

return word

Значения, на которых тестировалась функция, представлены на рисунке 2:

Рисунок 2 – Значения для тестирования функции.

Результат работы программы представлен на рисунке 3:

Рисунок 3 – Результат работы программы.

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

  1. Программа, позволяющая формировать строку по заданному условию.

  2. Программа, рекурсивно удаляющая повторы символов в строке.

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