Изучение различных методов печати ромбовидного узора на Python

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

Метод 1: использование вложенных циклов

def print_diamond(n):
    for i in range(n):
        for j in range(n - i - 1):
            print(" ", end="")
        for j in range(i + 1):
            print("*", end="")
            if j < i:
                print(" ", end="")
        print()
    for i in range(n - 2, -1, -1):
        for j in range(n - i - 1):
            print(" ", end="")
        for j in range(i + 1):
            print("*", end="")
            if j < i:
                print(" ", end="")
        print()
print_diamond(5)

Метод 2: использование форматирования строк

def print_diamond(n):
    for i in range(n):
        print(" " * (n - i - 1) + "* " * (i + 1))
    for i in range(n - 2, -1, -1):
        print(" " * (n - i - 1) + "* " * (i + 1))
print_diamond(5)

Метод 3: использование рекурсии

def print_diamond(n, i=0):
    if i < n:
        print(" " * (n - i - 1) + "* " * (i + 1))
        print_diamond(n, i + 1)
    else:
        for i in range(n - 2, -1, -1):
            print(" " * (n - i - 1) + "* " * (i + 1))
print_diamond(5)

Метод 4. Использование списков

def print_diamond(n):
    diamond = [("* " * (i + 1)).center(2 * n - 1) for i in range(n)]
    print("\n".join(diamond + diamond[:-1][::-1]))
print_diamond(5)

Печать ромбовидного узора в Python может быть достигнута с помощью различных методов, таких как использование вложенных циклов, форматирование строк, рекурсия или понимание списка. Каждый метод предлагает уникальный подход к решению проблемы, учитывающий различные стили программирования и предпочтения. Понимая эти различные методы, вы сможете улучшить свои навыки программирования и глубже понять универсальность Python при печати шаблонов.