Вывод пирамиды высотой n из символов в Python

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

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

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

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

Пример кода

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

# Цикл для вывода пирамиды
for i in range(1, height + 1):
    print(" " * (height - i) + "*" * (2 * i - 1))

Вывод

Введите высоту пирамиды: 5
    *
   ***
  *****
 *******
*********

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

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

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

Для построения пирамиды с использованием цикла while мы будем повторять определенные шаги до достижения желаемой высоты пирамиды. Прежде всего, мы запросим у пользователя высоту пирамиды. Затем мы начнем строить пирамиду, используя цикл while, который будет выполняться до тех пор, пока мы не достигнем заданной высоты.

На каждом шаге цикла while мы будем формировать строку для текущего уровня пирамиды, учитывая текущую высоту и текущий уровень. Затем эта строка будет выведена на экран.

Пример кода

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

while i <= height:  # Цикл будет выполняться до достижения заданной высоты пирамиды
    print(" " * (height - i) + "*" * (2 * i - 1))  # Формирование строки для текущего уровня пирамиды
    i += 1  # Увеличение значения текущего уровня

Вывод

Введите высоту пирамиды: 5
    *
   ***
  *****
 *******
*********

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

  1. Запрашивается у пользователя высота пирамиды с помощью функции input. Введенное значение преобразуется в целое число с помощью функции int и сохраняется в переменной height.
  2. Устанавливается начальное значение переменной i равным 1. Переменная i будет использоваться для отслеживания текущего уровня пирамиды.
  3. Запускается цикл while, который будет выполняться до тех пор, пока i не превысит значение height.
  4. На каждой итерации цикла вычисляется строка для текущего уровня пирамиды:
    • Создается строка пробелов, которая определяет отступ слева от звездочек. Количество пробелов определяется как разность между высотой пирамиды и текущим уровнем (height - i).
    • Создается строка звездочек, которая представляет собой последовательность нечетного количества символов «*». Формула для определения количества звездочек: 2 * i - 1. На первом уровне будет одна звездочка, на втором — три, и так далее.
  5. Строка для текущего уровня пирамиды выводится на экран с помощью функции print.
  6. После вывода строки для текущего уровня увеличивается значение переменной i на 1, чтобы перейти к следующему уровню пирамиды.
  7. Цикл продолжает выполняться до тех пор, пока i не превысит значение height, после чего выполнение программы завершается.

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

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

Пример кода

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

# Цикл для вывода перевернутой пирамиды
for i in range(height, 0, -1):
    # Формирование строки для текущего уровня пирамиды
    spaces = " " * (height - i)  # Пробелы слева
    stars = "*" * (2 * i - 1)     # Звездочки
    row = spaces + stars          # Строка для текущего уровня

    # Вывод строки на экран
    print(row)

Вывод

Введите высоту пирамиды: 5
*********
 *******
  *****
   ***
    *

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

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

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

Давайте теперь изменим подход и посмотрим как можно вывести перевернутую пирамиды с использованием цикла while в Python.

Пример кода

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

while i > 0:  # Начало цикла, который будет выполняться, пока i больше 0
    spaces = " " * (height - i)  # Формирование отступа слева на каждом уровне пирамиды
    stars = "*" * (2 * i - 1)  # Формирование строки из символов "*" для текущего уровня пирамиды
    row = spaces + stars  # Суммирование строки пробелов и строки символов "*" для текущего уровня пирамиды
    print(row)  # Вывод строки на экран
    i -= 1  # Уменьшение значения i на 1 для перехода к следующему уровню пирамиды

Вывод

Введите высоту пирамиды: 5
*********
 *******
  *****
   ***
    *

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

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

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