Ricerca nel sito web

Programma Python per visualizzare numeri a mezzo rombo con bordo a stella


Un motivo a mezzo diamante è un motivo geometrico che ricorda la forma di un diamante, ma copre solo la metà del diamante.

I motivi a rombi possono essere creati utilizzando i loop nella programmazione. Controllando i cicli e il numero di caratteri stampati in ciascuna riga, possiamo modificare il motivo per ottenere forme e disposizioni diverse.

In questo articolo scriveremo un programma Python che visualizza uno schema di numeri a mezzo diamante con un bordo a stella.

Scenari di input-output

Esploriamo alcuni scenari di input-output per visualizzare il modello di numeri a mezzo diamante con un bordo a stella.

Scenario 1 −

Input: 
n = 3
Output:
*1*
*121*
*12321*
*121*
*1*

Scenario 2 −

Input: 
n = 5
Output:
*1*
*121*
*12321*
*1234321*
*123454321*
*1234321*
*12321*
*121*
*1*

Approccio

Possiamo seguire i passaggi seguenti per visualizzare il motivo a mezzo diamante dei numeri con un bordo a stella

  • Definire una funzione che accetta un input n che rappresenta il numero di righe nel modello.

  • Inizia con la metà superiore del modello:

    • Utilizzare un ciclo for per scorrere l'intervallo da 1 a n + 1 (incluso).

    • Per ogni iterazione, stampa una stella (*) all'inizio della riga.

    • Utilizzare cicli for nidificati per stampare i numeri in ordine crescente da 1 a i.

    • Stampa una stella alla fine della riga.

  • Passare alla metà inferiore del motivo:

    • Utilizzare un ciclo for per scorrere l'intervallo da n - 1 a 0 (esclusivo), con un passo di -1.

    • Per ogni iterazione, stampa una stella all'inizio della riga.

    • Utilizzare cicli for nidificati per stampare i numeri in ordine crescente da 1 a i.

    • Stampa una stella alla fine della riga.

  • Infine, chiama la funzione con un valore n specifico per generare l'output desiderato.

Esempio

Vediamo il seguente programma Python per visualizzare uno schema di numeri a mezzo diamante con un bordo a stella.

def print_half_diamond_pattern(n):
    # Upper half
    for i in range(1, n + 1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print numbers in decreasing order
        for j in range(i - 1, 0, -1):
            print(j, end="")
        
        # Print stars
        print("*")

    # Lower half
    for i in range(n - 1, 0, -1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print numbers in decreasing order
        for j in range(i - 1, 0, -1):
            print(j, end="")
        
        # Print stars
        print("*")


# define n value 
n = 9
print_half_diamond_pattern(n)

Produzione

*1*
*121*
*12321*
*1234321*
*123454321*
*12345654321*
*1234567654321*
*123456787654321*
*12345678987654321*
*123456787654321*
*1234567654321*
*12345654321*
*123454321*
*1234321*
*12321*
*121*
*1*

Esempio

In questo esempio, lo schema è composto da numeri crescenti in ogni riga, senza i numeri decrescenti nella metà inferiore. Il resto della struttura rimane lo stesso dell'esempio precedente.

def print_half_diamond_pattern(n):
    # Upper half
    for i in range(1, n + 1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print stars
        print("*")

    # Lower half
    for i in range(n - 1, 0, -1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print stars
        print("*")


# define n value 
n = 5
print("Half diamond pattern: ")
print_half_diamond_pattern(n)

Produzione

Half diamond pattern: 
*1*
*12*
*123*
*1234*
*12345*
*1234*
*123*
*12*
*1*

Articoli correlati