Решение задачи: вывести фразу «Вася пошел гулять» лесенкой в Python

Обложка к статье "Фраза "Вася пошел гулять" лесенкой в Python"

В этой статье разберём решение задачи, в которой нам нужно вывести фразу «Вася пошел гулять» лесенкой на языке программирования 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)

Объяснение кода

  1. Задаем исходную фразу: "Вася пошел гулять".
  2. Разбиваем фразу на отдельные слова с помощью метода split(), результат сохраняем в переменной words.
  3. Инициализируем пустую строку result для хранения результата лесенки.
  4. Итерируемся по индексам слов с помощью цикла for i in range(len(words)).
  5. В каждой итерации создаем строку indented_word с отступом для текущего слова. Отступ формируется путем умножения пробела на сумму длин предыдущих слов. Для этого используется генератор списка, который суммирует длины всех слов до текущего слова. К полученному отступу добавляется само слово.
  6. Полученное отформатированное слово добавляется к строке result с добавлением символа новой строки \n.
  7. Выводим полученную лесенку на экран с помощью функции 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)

Пример работы программы:

Введите фразу: Фраза для разбиения на строки
Фраза
     для
        разбиения
                 на
                   строки

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий