Capitolo 5: Controllo di flusso
Gestisci il percorso di esecuzione dei tuoi programmi usando condizionali e cicli.
Scaricachapter5.py
Obiettivi
- Scrivere rami
if
,elif
,else
. - Creare cicli
for
su sequenze erange()
. - Usare cicli
while
per condizioni ripetute. - Controllare i cicli con
break
econtinue
. - Comprendere l’annidamento di condizionali e cicli.
1. Istruzioni condizionali
Logica ramificata basata su espressioni booleane:
x = 10
if x < 5:
print("x è minore di 5")
elif x < 15:
print("x è compreso tra 5 e 14")
else:
print("x è 15 o più")
Si possono annidare le condizioni:
score = 85
if score >= 90:
grade = "A"
else:
if score >= 80:
grade = "B"
else:
grade = "C"
print(f"Voto: {grade}")
2. Cicli for
Itera su sequenze (liste, stringhe, range):
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# usando range()
for i in range(5): # 0,1,2,3,4
print(i)
Puoi anche iterare con l’indice:
for idx, val in enumerate(fruits, start=1):
print(idx, val)
3. Cicli while
Ripeti finché una condizione è vera:
count = 0
while count < 3:
print("Count è", count)
count += 1
Usa un sentinella o flag per controllare il ciclo:
running = True
while running:
cmd = input("Inserisci comando (quit per uscire): ")
if cmd == "quit":
running = False
else:
print("Hai digitato:", cmd)
4. break & continue
Modifica il flusso di esecuzione del ciclo:
break
: esci immediatamente dal ciclo.continue
: passa all’iterazione successiva.
for n in range(10):
if n == 5:
break # interrompe il ciclo a 5
print(n)
for n in range(5):
if n % 2 == 0:
continue # salta i numeri pari
print(n) # stampa 1,3
Esercizi
- Scrivi uno script che stampa i numeri da 1 a 20, ma si ferma al primo divisibile per 7.
- Chiedi all’utente una password; continua a chiedere finché non inserisce quella corretta (
"secret"
). - Scorri una lista di nomi e stampa solo quelli che iniziano con una vocale usando
continue
. - Implementa un ciclo annidato per stampare una tabella di moltiplicazione 5×5.