Pillole di Python – parte 2: disegnare triangoli

Spread the love

Un po’ più laborioso è disegnare questi quattro triangoli. Ma neanche tanto, vedrete.

Bottom Left Triangle

BLT
*  
* *  
* * *  
* * * *  
* * * * *  
* * * * * *  
* * * * * * *  
* * * * * * * *  
* * * * * * * * *  
* * * * * * * * * *  

Top Right

TRT
* * * * * * * * * *  
  * * * * * * * * *  
    * * * * * * * *  
      * * * * * * *  
        * * * * * *  
          * * * * *  
            * * * *  
              * * *  
                * *  
                  * 

Bottom Right

BRT
                  *  
                * *  
              * * *  
            * * * *  
          * * * * *  
        * * * * * *  
      * * * * * * *  
    * * * * * * * *  
  * * * * * * * * *  
* * * * * * * * * *  

e infine Top Left

TLT
* * * * * * * * * *  
* * * * * * * * *    
* * * * * * * *      
* * * * * * *        
* * * * * *          
* * * * *            
* * * *              
* * *                
* *                  
*         

Li ho messi in quest’ordine perché sono due metà del quadrato diviso dalla stessa diagonale (TLBR nel primo, TRBL nel secondo).

Esercizio 3 – disegnare un triangolo BLT

print("BLT")
for i in range(N):
    for j in range(N):
        if i >= j:
            print("*"),
        else:
            print(" "),
    print(" ")  # a capo

Qui è evidente che l’esercizio 3 si ricava dall’esercizio 1 semplicemente sostituendo la condizione i=j con i>=j ma anche estendendo la scansione di j a tutto l’intervallo 0..N-1.

Esercizio 4 – disegnare un triangolo TRT

print("TRT")
for i in range(N):
    for j in range(N):
        if i <= j:
            print('*'),
        else:
            print(" "),
    print(" ")  # a capo

Anche qui è quasi ovvio, la condizione i <= j sostituisce la precedente i >= j (con la condizione = specifichiamo che va disegnata anche la diagonale).

Esercizio 5 – disegnare un triangolo BRT

print("BRT")
for i in range(N):
    for j in range(N):
        if j >= N - 1 - i:
            print("*"),
        else:
            print(" "),
    print(" ")  # a capo

Anche qui basta sostituire la condizione j = N - 1 - i con la relazione >=, a partire dall’esercizio 2.

Esercizio 6 – disegnare un triangolo TLT

print("TLT")
for i in range(N):
    for j in range(N):
        if j <= N - 1 - i:
            print("*"),
        else:
            print(" "),
    print(" ")

Ormai avete capito la regola, non serve spaccarsi la testa.

I pattern generati da questi programmi sono riportati in alto, all’inizio dell’articolo, nello stesso ordine.

Ok, abbiamo finito. Con la prossima e ultima parte disegneremo frecce.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.