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*