Programa Python para mostrar el patrón de medio diamante de números con borde de estrella

Dado un número n, la tarea es escribir un programa de Python para imprimir un patrón de números de medio diamante con un borde de estrella.

Ejemplos:

Input: n = 5
Output:

*
*1*
*121*
*12321*
*1234321*
*123454321*
*1234321*
*12321*
*121*
*1*
*


Input: n = 3
Output:

*
*1*
*121*
*12321*
*121*
*1*
*

Acercarse:

  • Se ejecutarán dos bucles for en este programa para imprimir los números y las estrellas.
  • Primero imprima * y luego ejecute for loop de 1 a (n+1) para imprimir hasta las filas en orden ascendente.
  • En este bucle for en particular, * se imprimirá hasta i y luego se ejecutará un bucle for más de 1 a i+1 para imprimir los números en orden ascendente.
  • Ahora se ejecutará un bucle más de i-1 a 0 para imprimir el número en el orden inverso.
  • Ahora se imprimirá una estrella y este bucle for terminará.
  • Ahora, el segundo ciclo for se ejecutará de n-1 a 0 para imprimir el patrón como en el medio en el que los números están en forma inversa.
  • En este bucle for también se realizará el mismo trabajo que en el primer bucle for.
  • Se mostrará el patrón requerido.

A continuación se muestra la implementación del patrón anterior:

Python3

# function to display the pattern up to n
def display(n):  
    
    print("*")
      
    for i in range(1, n+1):
        print("*", end="")
          
        # for loop to display number up to i
        for j in range(1, i+1):  
            print(j, end="")
  
        # for loop to display number in reverse direction    
        for j in range(i-1, 0, -1):  
            print(j, end="")
  
        print("*", end="")
        print()
  
    # for loop to display i in reverse direction
    for i in range(n-1, 0, -1):
        print("*", end="")
        for j in range(1, i+1):
            print(j, end="")
  
        for j in range(i-1, 0, -1):
            print(j, end="")
  
        print("*", end="")
        print()
  
    print("*")
  
  
# driver code
n = 5
print('\nFor n =', n)
display(n)
  
n = 3
print('\nFor n =', n)
display(n)

Producción: 

For n = 5
*
*1*
*121*
*12321*
*1234321*
*123454321*
*1234321*
*12321*
*121*
*1*
*

For n = 3
*
*1*
*121*
*12321*
*121*
*1*
*

Publicación traducida automáticamente

Artículo escrito por vermashivani543 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *