Una cornice quadrata
Disegna una cornice quadrata di asterischi
***** (A)
* * (B)
* * (B)
***** (A)
Ci sono due tipi di righe
- (A), riga piena di asterischi
- (B), riga vuota
1
for colonna in range(NUM): # (A) prima riga piena
print("*", end="")
print()
for riga in range(NUM-2): # (B) NUM-2 righe intermedie
print("*", end="") # un asterisco
for colonna in range(NUM-2): # NUM-2 spazi
print(" ", end="")
print("*") # asterisco finale
for colonna in range(NUM): # (A) ultima riga piena
print("*", end="")
print()
2
Gli asterischi occupano la prima e l’ultima riga e la prima e l’ultima colonna…
for riga in range(1,NUM+1):
for colonna in range(1,NUM+1):
if(riga == 1) or (riga == NUM) or (colonna == 1) or (colonna == NUM):
print("*", end="")
else:
print(" ", end="")
print()
Due cornici concentriche
Osserva
************ (A)
* * (B)
* * (B)
* ****** * (C)
* * * * (D)
* * * * (D)
* * * * (D)
* * * * (D)
* ****** * (C)
* * (B)
* * (B)
************ (A)
Ci sono 4 tipi di righe
- (A), riga piena di asterischi
- (B), riga vuota
- (C), riga semipiena
- (D), riga semivuota
1
NUM1 = 12
NUM2 = 6
vuote = (NUM1-NUM2)//2-1
for colonna in range(NUM1): # (A) prima riga piena
print("*", end="")
print()
for riga in range(vuote): # (B) prime righe vuote
print("*", end="")
for colonna in range(NUM1-2):
print(" ", end="")
print("*")
print("*", end="") # (C) riga semipiena
for i in range(vuote):
print(" ", end="")
for colonna in range(NUM2):
print("*", end="")
for i in range(vuote):
print(" ", end="")
print("*")
for colonna in range(NUM2-2): # (D) righe semivuote
print("*", end="")
for i in range(vuote):
print(" ", end="")
print("*", end="")
for colonna in range(NUM2-2):
print(" ", end="")
print("*", end="")
for i in range(vuote):
print(" ", end="")
print("*")
print("*", end="") # (C) riga semipiena
for i in range(vuote):
print(" ", end="")
for colonna in range(NUM2):
print("*", end="")
for i in range(vuote):
print(" ", end="")
print("*")
for riga in range(vuote): # (B) ultime righe vuote
print("*", end="")
for colonna in range(NUM1-2):
print(" ", end="")
print("*")
for colonna in range(NUM1): # (A) ultima riga piena
print("*", end="")
print()
2
Gli asterischi occupano righe e colonne specifiche
NUM1 = 12
NUM2 = 6
num3 = (NUM1-NUM2)//2+1
num4 = NUM1-num3+1
for riga in range(1,NUM1+1):
for colonna in range(1,NUM1+1):
if(riga == 1) or (riga == NUM1) or (colonna == 1) or (colonna == NUM1) or \
((riga == num3) or (riga == num4)) and (colonna >= num3) and (colonna <= num4) or \
((colonna == num3) or (colonna == num4)) and (riga >= num3) and (riga <= num4):
print("*", end="")
else:
print(" ", end="")
print()
Continua…
- Tre cornici concentriche?
- Cornici quadrate 2 (tramite stringhe)
- Rettangolo di asterischi (tramite funzioni)