Вывод лесенки высотой n из символов в Python

Обложка к статье "Вывод лесенки высотой n из символов в Python"

Вывод лесенки из символов — популярная задача для всех языков программирования, которая позволяет отточить навыки работы с циклами. В этой статье мы разберем как с помощью циклов вывести 4 типа лесенок из символов высотой, заданной пользователем, в Python.

Мы будем выводить следующие типы лесенок:

Прямая:

*
**
***
****
*****

Обратная:

*****
****
***
**
*

Перевернутая:

*****
 ****
  ***
   **
    *

Зеркальная:

    *
   **
  ***
 ****
*****

Вывод прямой лесенки с использованием цикла for

Для создания прямой лесенки из символов * воспользуемся циклом, который будет построчно формировать каждый уровень лесенки. На каждом шаге мы будем добавлять один символ * к строке и выводить ее на экран. Количество символов в каждой строке будет увеличиваться на каждом шаге, начиная с одного и заканчивая заданным числом n. Таким образом, каждая строка будет иметь на один символ * больше, чем предыдущая.

Пример кода

# Запрашиваем высоту лесенки у пользователя
n = int(input("Введите высоту лесенки: "))

# Выводим прямую лесенку
for i in range(1, n + 1):
    print("*" * i)

Вывод

Введите высоту лесенки: 5
*
**
***
****
*****

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

  1. Пользователю предлагается ввести высоту лесенки с клавиатуры.
  2. Значение высоты преобразуется в целое число и сохраняется в переменной n.
  3. В цикле for перебираются значения от 1 до n включительно.
  4. На каждой итерации выводится строка, состоящая из символа *, умноженного на текущее значение итерации i.

Вывод прямой лесенки с использованием цикла while

Мы можем воспользоваться циклом while, который будет работать до тех пор, пока height больше 0. После каждой итерации будем уменьшать height на 1.

Пример кода

# Пользователь вводит высоту лесенки
height = int(input("Введите высоту лесенки: "))

# Инициализируем переменную для хранения количества звездочек
stars = 1

# Выводим лесенку
while height > 0:
    print('*' * stars)
    stars += 1
    height -= 1

Вывод

Введите высоту лесенки: 5
*
**
***
****
*****

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

  1. Пользователь вводит высоту лесенки с помощью функции input. Введенное значение преобразуется в целое число с помощью int.
  2. Создается переменная stars, которая будет использоваться для отслеживания количества звездочек, которые будут выводиться на каждом уровне лесенки. Изначально у нас одна звездочка на первом уровне.
  3. Запускается цикл while, который будет работать до тех пор, пока значение height (введенное пользователем количество уровней лесенки) больше 0.
  4. На каждой итерации цикла выводится строка, состоящая из stars звездочек, что создает один уровень лесенки.
  5. После вывода строки количество звездочек stars увеличивается на 1, чтобы на следующем уровне была на одна звездочка больше.
  6. После каждой итерации значение height уменьшается на 1, что означает, что мы переходим к следующему уровню лесенки.
  7. Цикл продолжает выполняться, пока height не станет равным 0, после чего программа завершается.

Вывод обратной лесенки с использованием цикла for

Для вывода обратной лесенки с использованием цикла в Python мы можем использовать цикл for, который будет перебирать значения от n до 1 включительно и на каждой итерации выводить строку, состоящую из символа *, умноженного на текущее значение итерации.

Пример кода

# Пользователь вводит высоту лесенки
height = int(input("Введите высоту лесенки: "))

# Цикл для вывода обратной лесенки
for i in range(height, 0, -1):
    print('*' * i)

Вывод

Введите высоту лесенки: 5
*****
****
***
**
*

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

  1. Пользователю предлагается ввести высоту лесенки с клавиатуры.
  2. Введенное значение сохраняется в переменной height после преобразования в целое число с помощью функции int().
  3. Затем используется цикл for, который перебирает значения от height до 1 включительно с шагом -1. Это делается с помощью функции range(height, 0, -1).
  4. На каждой итерации цикла формируется строка, состоящая из символа *, повторенного i раз, где i — текущее значение итерации.
  5. Сформированная строка выводится на экран с помощью функции print().

Вывод обратной лесенки с использованием цикла while

Давайте теперь разберём вариант с использованием цикла while

Пример кода

height = int(input("Введите высоту лесенки: "))

while height > 0:
    print('*' * height)
    height -= 1

Вывод

Введите высоту лесенки: 5
*****
****
***
**
*

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

  1. Мы запрашиваем у пользователя высоту лесенки с помощью функции input().
  2. Затем мы используем цикл while, чтобы печатать строки лесенки.
  3. На каждой итерации цикла мы печатаем строку, состоящую из символа «*», умноженного на текущее значение переменной height.
  4. После печати строки мы уменьшаем значение переменной height на 1, чтобы двигаться к вершине лесенки.
  5. Цикл завершается, когда переменная height становится равной 0, и лесенка полностью напечатана.

Вывод перевернутой лесенки с использованием цикла for

Для вывода перевернутой лесенки с помощью цикла for мы можем использовать уже знакомый нам подход с небольшими изменениями.

Пример кода

# Запрос высоты лесенки у пользователя
height = int(input("Введите высоту лесенки: "))

# Цикл для вывода перевернутой лесенки
for i in range(height):
    print(" " * i + "*" * (height - i))

Вывод

Введите высоту лесенки: 5
*****
 ****
  ***
   **
    *

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

  1. Пользователю предлагается ввести высоту лесенки с помощью функции input. Высота задается целым числом.
  2. Создается цикл for, который проходит от 0 до значения высоты лесенки (исключительно).
  3. На каждой итерации цикла выводится строка, состоящая из пробелов и звездочек. Количество пробелов равно значению текущей итерации i, а количество звездочек равно разнице между высотой лесенки и текущим значением i.
  4. Таким образом, на каждой строке количество пробелов уменьшается, а количество звездочек увеличивается, создавая эффект перевернутой лесенки.

Вывод перевернутой лесенки с использованием цикла while

Давайте теперь разберём как вывести перевернутую лесенку с помощью цикла while.

Пример кода

# Запрос высоты лесенки у пользователя
height = int(input("Введите высоту лесенки: "))

# Инициализация переменной для отслеживания текущего ряда
row = 0

# Пока не достигнем конца лесенки, выводим каждый ряд
while row < height:
    # Выводим пробелы перед звездочками
    print(" " * row, end="")
    # Выводим звездочки в убывающем порядке
    print("*" * (height - row))
    # Переходим к следующему ряду
    row += 1

Вывод

Введите высоту лесенки: 5
*****
 ****
  ***
   **
    *

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

  1. height = int(input("Введите высоту лесенки: ")): Запрашиваем у пользователя высоту лесенки и преобразуем введенное значение в целое число, сохраняем в переменной height.
  2. row = 0: Инициализируем переменную row для отслеживания текущего ряда, начиная с нуля.
  3. while row < height:: Начинаем цикл while, который будет выполняться, пока значение переменной row меньше чем height, то есть пока мы не достигнем заданной высоты лесенки.
  4. print(" " * row, end=""): Выводим пробелы перед звездочками. Количество пробелов определяется текущим значением row, что создает эффект увеличивающегося отступа перед каждым рядом звездочек. Используем end="", чтобы следующий вывод начинался с той же строки.
  5. print("*" * (height - row)): Выводим звездочки в убывающем порядке относительно высоты лесенки. Звездочка повторяется (height - row) раз, что обеспечивает уменьшение количества звездочек с каждым следующим рядом.
  6. row += 1: Увеличиваем значение переменной row на единицу для перехода к следующему ряду.
  7. Цикл продолжает выполнение, пока не достигнет указанной пользователем высоты height.

Вывод зеркальной лесенки с использованием цикла for

В этом разделе мы рассмотрим использование цикла for для вывода зеркальной лесенки.

Пример кода

# Запрос высоты лесенки у пользователя
height = int(input("Введите высоту лесенки: "))

# Цикл для вывода зеркальной лесенки
for i in range(height):
    print(" " * (height - i - 1) + "*" * (i + 1))

Вывод

Введите высоту лесенки: 5
    *
   **
  ***
 ****
*****

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

  1. Пользователю предлагается ввести высоту лесенки с помощью функции input().
  2. Высота лесенки сохраняется в переменной height после преобразования в целое число с помощью int().
  3. Начинается выполнение цикла for, который будет итерироваться от 0 до height - 1.
  4. На каждой итерации цикла:
    • Сначала вычисляется количество пробелов, которые нужно вывести перед символами *. Это количество определяется как height - i - 1. Здесь i — это текущая итерация цикла, поэтому чем больше i, тем меньше пробелов нужно.
    • Затем вычисляется количество символов *, которые нужно вывести. Оно равно i + 1, потому что на каждом новом уровне лесенки количество символов увеличивается на единицу.
    • В результате формируется строка, содержащая нужное количество пробелов и символов *.
  5. Эта строка выводится на экран с помощью функции print().

Вывод зеркальной лесенки с использованием цикла while

Для создания зеркальной лесенки с использованием цикла while мы можем изменить подход, который мы использовали с циклом for. Вместо итерации через диапазон чисел мы будем использовать переменную для отслеживания текущего ряда и увеличивать её до тех пор, пока не достигнем желаемой высоты лесенки.

Пример кода

# Запрос высоты лесенки у пользователя
height = int(input("Введите высоту лесенки: "))

# Инициализация переменной для отслеживания текущего ряда
row = 0

# Вывод зеркальной лесенки с использованием цикла while
while row < height:
    spaces = height - row - 1
    stars = row + 1
    print(" " * spaces + "*" * stars)
    row += 1

Вывод

Введите высоту лесенки: 5
    *
   **
  ***
 ****
*****

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

  1. Запрос высоты лесенки у пользователя:
    • height = int(input("Введите высоту лесенки: ")) запрашивает у пользователя высоту лесенки и преобразует введенное значение в целое число.
  2. Инициализация переменной для отслеживания текущего ряда:
    • row = 0 создает переменную row, которая будет использоваться для отслеживания текущего ряда. В начале она установлена на 0, что соответствует первому ряду.
  3. Вывод зеркальной лесенки с использованием цикла while:
    • while row < height: задает цикл while, который будет выполняться, пока переменная row меньше заданной высоты height. Это гарантирует, что мы выведем нужное количество рядов.
  4. Вычисление количества пробелов и звездочек:
    • spaces = height - row - 1 определяет количество пробелов в текущем ряду, уменьшая количество пробелов с каждым новым рядом.
    • stars = row + 1 определяет количество звездочек в текущем ряду, увеличивая их количество с каждым новым рядом.
  5. Вывод строки лесенки:
    • print(" " * spaces + "*" * stars) выводит текущий ряд лесенки, состоящий из определенного количества пробелов и звездочек, чтобы создать зеркальный эффект.
  6. Увеличение значения переменной row:
    • row += 1 после каждой итерации цикла увеличивает значение переменной row на 1, чтобы перейти к следующему ряду.

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