В этой статье разберём решение задачи, в которой нам нужно вывести фразу «Вася пошел гулять» лесенкой на языке программирования Python. Лесенка представляет собой последовательность строк, где каждое следующее слово смещено относительно предыдущего на определенное количество пробелов:
Вася
пошел
гулять
Начнём с простого подхода, и перейдём к более сложным.
Вывод фразы «Вася пошел гулять» лесенкой с помощью функции print
Начнём с самого простого решения. Мы можем вручную задать слова и пробелы и использовать функцию print
:
print("Вася")
print(" пошел")
print(" гулять")
Также можем использовать символ переноса строка и написать код в одну строку:
print("Вася\n пошел\n гулять")
Вывод фразы «Вася пошел гулять» с помощью цикла
Также для решения данной задачи мы можем использовать цикл и строковые операции. Этот метод будет более универсальным. Давайте посмотрим код, а после разберём как он работает.
Пример кода
# Исходная фраза
phrase = "Вася пошел гулять"
# Разбиваем фразу на отдельные слова
words = phrase.split()
# Инициализируем пустую строку для хранения результата
result = ""
# Итерируем по индексам слов
for i in range(len(words)):
# Создаем строку с отступом для текущего слова
indented_word = " " * sum(len(w) for w in words[:i]) + words[i]
# Добавляем отформатированное слово в результат
result += indented_word + "\n"
# Выводим полученную лесенку на экран
print(result)
Объяснение кода
- Задаем исходную фразу:
"Вася пошел гулять"
. - Разбиваем фразу на отдельные слова с помощью метода
split()
, результат сохраняем в переменнойwords
. - Инициализируем пустую строку
result
для хранения результата лесенки. - Итерируемся по индексам слов с помощью цикла
for i in range(len(words))
. - В каждой итерации создаем строку
indented_word
с отступом для текущего слова. Отступ формируется путем умножения пробела на сумму длин предыдущих слов. Для этого используется генератор списка, который суммирует длины всех слов до текущего слова. К полученному отступу добавляется само слово. - Полученное отформатированное слово добавляется к строке
result
с добавлением символа новой строки\n
. - Выводим полученную лесенку на экран с помощью функции
print(result)
.
Вывод пользовательской фразы лесенкой с помощью цикла
Использую принцип из предыдущего примера, мы можем вывести любую пользовательскую фразу лесенкой. Доработаем код:
# Исходная фраза
phrase = input("Введите фразу: ")
# Разбиваем фразу на отдельные слова
words = phrase.split()
# Инициализируем пустую строку для хранения результата
result = ""
# Итерируем по индексам слов
for i in range(len(words)):
# Создаем строку с отступом для текущего слова
indented_word = " " * sum(len(w) for w in words[:i]) + words[i]
# Добавляем отформатированное слово в результат
result += indented_word + "\n"
# Выводим полученную лесенку на экран
print(result)
Пример работы программы:
Введите фразу: Фраза для разбиения на строки
Фраза
для
разбиения
на
строки