Lab3 отчет
.docxФедеральное агентство связи
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Московский технический университет связи и информатики»
Кафедра «Сетевых информационных технологий и сервисов»
Отчёт по лабораторной работе №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 – Результат работы программы.
Вывод: В данной лабораторной работе были разработаны
Программа, позволяющая формировать строку по заданному условию.
Программа, рекурсивно удаляющая повторы символов в строке.