Вывод лесенки из символов — популярная задача для всех языков программирования, которая позволяет отточить навыки работы с циклами. В этой статье мы разберем как с помощью циклов вывести 4 типа лесенок из символов высотой, заданной пользователем, в Python.
Мы будем выводить следующие типы лесенок:
Прямая:
*
**
***
****
*****
Обратная:
*****
****
***
**
*
Перевернутая:
*****
****
***
**
*
Зеркальная:
*
**
***
****
*****
- Вывод прямой лесенки с использованием цикла for
- Пример кода
- Вывод
- Объяснение кода
- Вывод прямой лесенки с использованием цикла while
- Пример кода
- Вывод
- Объяснение кода
- Вывод обратной лесенки с использованием цикла for
- Пример кода
- Вывод
- Объяснение кода
- Вывод обратной лесенки с использованием цикла while
- Пример кода
- Вывод
- Объяснение кода
- Вывод перевернутой лесенки с использованием цикла for
- Пример кода
- Вывод
- Объяснение кода
- Вывод перевернутой лесенки с использованием цикла while
- Пример кода
- Вывод
- Объяснение кода
- Вывод зеркальной лесенки с использованием цикла for
- Пример кода
- Вывод
- Объяснение кода
- Вывод зеркальной лесенки с использованием цикла while
- Пример кода
- Вывод
- Объяснение кода
Вывод прямой лесенки с использованием цикла for
Для создания прямой лесенки из символов * воспользуемся циклом, который будет построчно формировать каждый уровень лесенки. На каждом шаге мы будем добавлять один символ * к строке и выводить ее на экран. Количество символов в каждой строке будет увеличиваться на каждом шаге, начиная с одного и заканчивая заданным числом n. Таким образом, каждая строка будет иметь на один символ * больше, чем предыдущая.
Пример кода
# Запрашиваем высоту лесенки у пользователя
n = int(input("Введите высоту лесенки: "))
# Выводим прямую лесенку
for i in range(1, n + 1):
print("*" * i)
Вывод
Введите высоту лесенки: 5
*
**
***
****
*****
Объяснение кода
- Пользователю предлагается ввести высоту лесенки с клавиатуры.
- Значение высоты преобразуется в целое число и сохраняется в переменной
n. - В цикле
forперебираются значения от 1 доnвключительно. - На каждой итерации выводится строка, состоящая из символа
*, умноженного на текущее значение итерацииi.
Вывод прямой лесенки с использованием цикла while
Мы можем воспользоваться циклом while, который будет работать до тех пор, пока height больше 0. После каждой итерации будем уменьшать height на 1.
Пример кода
# Пользователь вводит высоту лесенки
height = int(input("Введите высоту лесенки: "))
# Инициализируем переменную для хранения количества звездочек
stars = 1
# Выводим лесенку
while height > 0:
print('*' * stars)
stars += 1
height -= 1
Вывод
Введите высоту лесенки: 5
*
**
***
****
*****
Объяснение кода
- Пользователь вводит высоту лесенки с помощью функции
input. Введенное значение преобразуется в целое число с помощьюint. - Создается переменная
stars, которая будет использоваться для отслеживания количества звездочек, которые будут выводиться на каждом уровне лесенки. Изначально у нас одна звездочка на первом уровне. - Запускается цикл
while, который будет работать до тех пор, пока значениеheight(введенное пользователем количество уровней лесенки) больше 0. - На каждой итерации цикла выводится строка, состоящая из
starsзвездочек, что создает один уровень лесенки. - После вывода строки количество звездочек
starsувеличивается на 1, чтобы на следующем уровне была на одна звездочка больше. - После каждой итерации значение
heightуменьшается на 1, что означает, что мы переходим к следующему уровню лесенки. - Цикл продолжает выполняться, пока
heightне станет равным 0, после чего программа завершается.
Вывод обратной лесенки с использованием цикла for
Для вывода обратной лесенки с использованием цикла в Python мы можем использовать цикл for, который будет перебирать значения от n до 1 включительно и на каждой итерации выводить строку, состоящую из символа *, умноженного на текущее значение итерации.
Пример кода
# Пользователь вводит высоту лесенки
height = int(input("Введите высоту лесенки: "))
# Цикл для вывода обратной лесенки
for i in range(height, 0, -1):
print('*' * i)
Вывод
Введите высоту лесенки: 5
*****
****
***
**
*
Объяснение кода
- Пользователю предлагается ввести высоту лесенки с клавиатуры.
- Введенное значение сохраняется в переменной
heightпосле преобразования в целое число с помощью функцииint(). - Затем используется цикл
for, который перебирает значения отheightдо 1 включительно с шагом -1. Это делается с помощью функцииrange(height, 0, -1). - На каждой итерации цикла формируется строка, состоящая из символа
*, повторенногоiраз, гдеi— текущее значение итерации. - Сформированная строка выводится на экран с помощью функции
print().
Вывод обратной лесенки с использованием цикла while
Давайте теперь разберём вариант с использованием цикла while
Пример кода
height = int(input("Введите высоту лесенки: "))
while height > 0:
print('*' * height)
height -= 1
Вывод
Введите высоту лесенки: 5
*****
****
***
**
*
Объяснение кода
- Мы запрашиваем у пользователя высоту лесенки с помощью функции
input(). - Затем мы используем цикл
while, чтобы печатать строки лесенки. - На каждой итерации цикла мы печатаем строку, состоящую из символа «*», умноженного на текущее значение переменной
height. - После печати строки мы уменьшаем значение переменной
heightна 1, чтобы двигаться к вершине лесенки. - Цикл завершается, когда переменная
heightстановится равной 0, и лесенка полностью напечатана.
Вывод перевернутой лесенки с использованием цикла for
Для вывода перевернутой лесенки с помощью цикла for мы можем использовать уже знакомый нам подход с небольшими изменениями.
Пример кода
# Запрос высоты лесенки у пользователя
height = int(input("Введите высоту лесенки: "))
# Цикл для вывода перевернутой лесенки
for i in range(height):
print(" " * i + "*" * (height - i))
Вывод
Введите высоту лесенки: 5
*****
****
***
**
*
Объяснение кода
- Пользователю предлагается ввести высоту лесенки с помощью функции
input. Высота задается целым числом. - Создается цикл
for, который проходит от 0 до значения высоты лесенки (исключительно). - На каждой итерации цикла выводится строка, состоящая из пробелов и звездочек. Количество пробелов равно значению текущей итерации
i, а количество звездочек равно разнице между высотой лесенки и текущим значениемi. - Таким образом, на каждой строке количество пробелов уменьшается, а количество звездочек увеличивается, создавая эффект перевернутой лесенки.
Вывод перевернутой лесенки с использованием цикла while
Давайте теперь разберём как вывести перевернутую лесенку с помощью цикла while.
Пример кода
# Запрос высоты лесенки у пользователя
height = int(input("Введите высоту лесенки: "))
# Инициализация переменной для отслеживания текущего ряда
row = 0
# Пока не достигнем конца лесенки, выводим каждый ряд
while row < height:
# Выводим пробелы перед звездочками
print(" " * row, end="")
# Выводим звездочки в убывающем порядке
print("*" * (height - row))
# Переходим к следующему ряду
row += 1
Вывод
Введите высоту лесенки: 5
*****
****
***
**
*
Объяснение кода
height = int(input("Введите высоту лесенки: ")): Запрашиваем у пользователя высоту лесенки и преобразуем введенное значение в целое число, сохраняем в переменнойheight.row = 0: Инициализируем переменнуюrowдля отслеживания текущего ряда, начиная с нуля.while row < height:: Начинаем циклwhile, который будет выполняться, пока значение переменнойrowменьше чемheight, то есть пока мы не достигнем заданной высоты лесенки.print(" " * row, end=""): Выводим пробелы перед звездочками. Количество пробелов определяется текущим значениемrow, что создает эффект увеличивающегося отступа перед каждым рядом звездочек. Используемend="", чтобы следующий вывод начинался с той же строки.print("*" * (height - row)): Выводим звездочки в убывающем порядке относительно высоты лесенки. Звездочка повторяется(height - row)раз, что обеспечивает уменьшение количества звездочек с каждым следующим рядом.row += 1: Увеличиваем значение переменнойrowна единицу для перехода к следующему ряду.- Цикл продолжает выполнение, пока не достигнет указанной пользователем высоты
height.
Вывод зеркальной лесенки с использованием цикла for
В этом разделе мы рассмотрим использование цикла for для вывода зеркальной лесенки.
Пример кода
# Запрос высоты лесенки у пользователя
height = int(input("Введите высоту лесенки: "))
# Цикл для вывода зеркальной лесенки
for i in range(height):
print(" " * (height - i - 1) + "*" * (i + 1))
Вывод
Введите высоту лесенки: 5
*
**
***
****
*****
Объяснение кода
- Пользователю предлагается ввести высоту лесенки с помощью функции
input(). - Высота лесенки сохраняется в переменной
heightпосле преобразования в целое число с помощьюint(). - Начинается выполнение цикла
for, который будет итерироваться от 0 доheight - 1. - На каждой итерации цикла:
- Сначала вычисляется количество пробелов, которые нужно вывести перед символами
*. Это количество определяется какheight - i - 1. Здесьi— это текущая итерация цикла, поэтому чем большеi, тем меньше пробелов нужно. - Затем вычисляется количество символов
*, которые нужно вывести. Оно равноi + 1, потому что на каждом новом уровне лесенки количество символов увеличивается на единицу. - В результате формируется строка, содержащая нужное количество пробелов и символов
*.
- Сначала вычисляется количество пробелов, которые нужно вывести перед символами
- Эта строка выводится на экран с помощью функции
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
*
**
***
****
*****
Объяснение кода
- Запрос высоты лесенки у пользователя:
height = int(input("Введите высоту лесенки: "))запрашивает у пользователя высоту лесенки и преобразует введенное значение в целое число.
- Инициализация переменной для отслеживания текущего ряда:
row = 0создает переменнуюrow, которая будет использоваться для отслеживания текущего ряда. В начале она установлена на 0, что соответствует первому ряду.
- Вывод зеркальной лесенки с использованием цикла while:
while row < height:задает циклwhile, который будет выполняться, пока переменнаяrowменьше заданной высотыheight. Это гарантирует, что мы выведем нужное количество рядов.
- Вычисление количества пробелов и звездочек:
spaces = height - row - 1определяет количество пробелов в текущем ряду, уменьшая количество пробелов с каждым новым рядом.stars = row + 1определяет количество звездочек в текущем ряду, увеличивая их количество с каждым новым рядом.
- Вывод строки лесенки:
print(" " * spaces + "*" * stars)выводит текущий ряд лесенки, состоящий из определенного количества пробелов и звездочек, чтобы создать зеркальный эффект.
- Увеличение значения переменной row:
row += 1после каждой итерации цикла увеличивает значение переменнойrowна 1, чтобы перейти к следующему ряду.








