I Cicli in Python

Scopri come automatizzare le ripetizioni con while e for

I cicli sono una delle strutture fondamentali nella programmazione. Permettono di ripetere un blocco di istruzioni senza dover scrivere lo stesso codice più volte.

🎯 Perché usare i cicli?

Automatizzazione, elaborazione di dati multipli, validazione input, esecuzione ripetitiva di operazioni

🎨 Colorare il Testo nel Terminale

💡 Perché imparare le sequenze ANSI?

Rendere i tuoi programmi più professionali e leggibili! Quando lavorerai con i cicli (for e while),
spesso dovrai mostrare output complessi. I colori ti aiutano a:

  • Distinguere tipi di dati diversi (numeri positivi/negativi, categorie, ecc.)
  • Evidenziare errori o avvisi in modo immediato
  • Creare menu e interfacce più intuitive
  • Rendere i tuoi esercizi più belli e facili da correggere!

Le sequenze ANSI

Le sequenze ANSI permettono di modificare il colore e lo stile del testo nel terminale.
Sono codici speciali che iniziano con \033[ o \x1b[.

print(“\033[31mQuesto testo è rosso\033[0m”)
print(“\033[32mQuesto testo è verde\033[0m”)

🎨 Colori del Testo (Foreground)

Rosso

\033[31m

Verde

\033[32m

Giallo

\033[33m

Blu

\033[34m

Reset

\033[0m

🎨 Colori di Sfondo (Background)

Sfondo Rosso

\033[41m

Sfondo Verde

\033[42m

Sfondo Giallo

\033[43m

Sfondo Blu

\033[44m

Sfondo Viola

\033[45m

Esempio con costanti (consigliato)

Per rendere il codice più leggibile, definisci le sequenze ANSI come costanti:

# Definizione delle costanti per i colori
ROSSO = “\033[31m”
VERDE = “\033[32m”
GIALLO = “\033[33m”
BLU = “\033[34m”
RESET = “\033[0m”

# Colori di sfondo
SFONDO_ROSSO = “\033[41m”
SFONDO_VERDE = “\033[42m”
SFONDO_GIALLO = “\033[43m”

# Uso combinato di colore e sfondo
print(ROSSO + SFONDO_GIALLO + “Testo rosso su sfondo giallo!” + RESET)

🎯 Esempio pratico con cicli

Ecco come usare i colori con un ciclo for per evidenziare diversi tipi di numeri:

# Definizione colori
ROSSO = “\033[31m”
VERDE = “\033[32m”
GIALLO = “\033[33m”
RESET = “\033[0m”

# Analizza i numeri da 1 a 10
for numero in range(1, 11):
if numero % 2 == 0:
print(f”{VERDE}{numero} è pari{RESET}”)
else:
print(f”{ROSSO}{numero} è dispari{RESET}”)

1. Il Ciclo while

📌 Quando usarlo:

Quando non sappiamo quante volte vogliamo ripetere un’operazione. Continua finché una condizione è vera.

Sintassi base:

while condizione:
# codice da eseguire

Esempi pratici:

1

Contatore classico

x = 0
while x < 5:
print(“x vale:”, x)
x += 1

Output: x vale: 0, x vale: 1, x vale: 2, x vale: 3, x vale: 4

2

Validazione input utente

password = “”
while password != “python123”:
password = input(“Inserisci la password corretta: “)
print(“Accesso consentito.”)

2. Simulare il ciclo do-while

⚡ Python non ha do-while nativo

Ma possiamo simularlo per eseguire il blocco almeno una volta prima di verificare la condizione

Metodo con break:

x = 0
while True:
print(“x vale:”, x)
x += 1
if x >= 5:
break

Metodo con variabile booleana:

x = 0
continuare = True
while continuare:
print(“x vale:”, x)
x += 1
if x >= 5:
continuare = False

💡 Cos’è una variabile booleana?

Una variabile che può essere solo True (vero) o False (falso). Perfetta per controllare l’esecuzione dei cicli.

3. Il Ciclo for

📌 Quando usarlo:

Quando sappiamo quante volte vogliamo ripetere un’operazione o vogliamo iterare su una sequenza.

Sintassi base:

for variabile in sequenza:
# codice da eseguire

La funzione range():

range(n)

Da 0 a n-1

range(start, stop)

Da start a stop-1

range(start, stop, step)

Da start a stop-1, incrementando di step

🎯

Numeri pari con range

for i in range(2, 10, 2): # Itera sui numeri pari tra 2 e 9
print(i)

Output: 2, 4, 6, 8

4. Differenze tra for e while

🔁 Ciclo for

  • Numero di iterazioni noto in anticipo
  • Per iterare su sequenze
  • Più sicuro (meno rischi di loop infiniti)
  • Usa range() o sequenze

🔄 Ciclo while

  • Numero di iterazioni sconosciuto
  • Per condizioni complesse
  • Richiede attenzione (rischio loop infiniti)
  • Controllato da condizione booleana

5. Comandi Speciali nei Cicli

⏭️

continue

Salta l’iterazione corrente e passa alla successiva

for i in range(1, 6):
if i == 3:
continue
print(i)

Output: 1, 2, 4, 5

⏹️

break

Esce immediatamente dal ciclo

for i in range(1, 6):
if i == 4:
break
print(i)

Output: 1, 2, 3

pass

Istruzione nulla, utile come segnaposto

for i in range(1, 6):
if i == 3:
pass
else:
print(i)

Output: 1, 2, 4, 5

🎯 Esercitazioni Guidate

8 esercizi pratici con cicli for e while

1. Numeri e quadrati

Stampa i numeri da 1 a 10 e i loro quadrati.

for numero in range(1, 11):
quadrato = numero ** 2
print(f”Numero: {numero}, Quadrato: {quadrato}”)

2. Tabellina del 5

Genera la tabellina del 5 usando un ciclo for.

for i in range(1, 11):
print(5 * i)

3. Somma fino a N

Calcola la somma di tutti i numeri da 1 a N.

n = int(input(“Inserisci un numero: “))
somma = 0
for i in range(1, n+1):
somma += i
print(“Somma totale:”, somma)

4. Somma numeri pari (while)

Calcola la somma dei numeri pari da 2 a 20 usando while.

somma = 0
n = 2
while n <= 20:
somma += n
n += 2
print(“Somma numeri pari:”, somma)

5. Conto alla rovescia

Conto alla rovescia da 10 a 1.

x = 10
while x > 0:
print(f”Mancano {x} secondi!”)
x -= 1
print(“BUON ANNO! 🎉”)

6. Numero di asterischi

Stampa un triangolo di asterischi.

for i in range(1, 6):
print(“*” * i)

7. Calcolatrice ripetitiva

Esegui operazioni matematiche finché l’utente non sceglie di uscire.

continuare = True
while continuare:
print(“\n1. Somma\n2. Sottrazione\n3. Esci”)
scelta = input(“Scegli: “)
if scelta == “1”:
a = int(input(“Primo numero: “))
b = int(input(“Secondo numero: “))
print(f”Risultato: {a + b}”)
elif scelta == “2”:
a = int(input(“Primo numero: “))
b = int(input(“Secondo numero: “))
print(f”Risultato: {a – b}”)
elif scelta == “3”:
continuare = False
print(“Arrivederci! 👋”)

8. Numeri divisibili

Trova i numeri divisibili per 7 tra 1 e 100.

print(“Numeri divisibili per 7:”)
for i in range(1, 101):
if i % 7 == 0:
print(i, end=” “)

🎯 Sfida Extra: Divisibili per 2 e 3

Regole del gioco:

  • “DueTre” se divisibile per 2 e 3
  • “Due” se divisibile solo per 2
  • “Tre” se divisibile solo per 3
  • Il numero stesso altrimenti
x = 1
while x <= 50:
if x % 2 == 0 and x % 3 == 0:
print(“DueTre”)
elif x % 2 == 0:
print(“Due”)
elif x % 3 == 0:
print(“Tre”)
else:
print(x)
x += 1

🚀 Pronto per metterti alla prova?

Metti in pratica ciò che hai imparato con gli esercizi sui cicli!


Vai agli Esercizi →

Torna in alto