Sostieni AppuntiFacili con una piccola donazione su PayPal
Dona con PayPalLe strutture di controllo in Python sono istruzioni che permettono di modificare il flusso di esecuzione di un programma, decidendo quali istruzioni eseguire e quante volte.
Esistono due grandi categorie di strutture di controllo:
| Tipo | Descrizione | Esempio tipico |
|---|---|---|
| Selezione | Esegue blocchi diversi di codice in base a una condizione | if, elif, else |
| Iterazione (Cicli) | Ripete un blocco di codice più volte finché una condizione è vera | for, while |
INFO
Le strutture di controllo rendono i programmi dinamici, flessibili e reattivi ai dati. Senza di esse, il codice eseguirebbe sempre le stesse istruzioni in modo lineare.
if, elif, elseL’istruzione if consente di verificare una condizione logica ed eseguire un blocco di codice solo se essa è vera (True).
# Esempio base di struttura condizionale
numero = int(input("Inserisci un numero: "))
if numero > 0:
print("Il numero è positivo.")
elif numero < 0:
print("Il numero è negativo.")
else:
print("Il numero è zero.")
La clausola elif (else if) permette di aggiungere altre condizioni alternative.
else viene eseguito solo se tutte le precedenti sono false.
python
| Operatore | Significato | Esempio | Risultato |
|---|---|---|---|
== | Uguale a | 5 == 5 | True |
!= | Diverso da | 5 != 3 | True |
> | Maggiore di | 7 > 2 | True |
< | Minore di | 4 < 1 | False |
>= | Maggiore o uguale | 3 >= 3 | True |
<= | Minore o uguale | 2 <= 5 | True |
TIP
Le condizioni in Python non richiedono parentesi tonde, ma devono essere seguite da : e un rientro del blocco successivo.
È possibile combinare più condizioni tramite operatori logici.
| Operatore | Significato | Esempio | Risultato |
|---|---|---|---|
and | Entrambe vere | x > 0 and x < 10 | True se x è compreso tra 0 e 10 |
or | Almeno una vera | x < 0 or x > 10 | True se x è fuori dall’intervallo |
not | Negazione | not(x == 5) | True se x è diverso da 5 |
eta = int(input("Inserisci la tua età: "))
if eta >= 18 and eta <= 65:
print("Sei un adulto.")
elif eta < 18:
print("Sei un minorenne.")
else:
print("Sei in età pensionabile.")
INFO
Gli operatori logici permettono di rendere il codice più compatto e leggibile, evitando annidamenti eccessivi di if.
Le strutture iterative consentono di ripetere un blocco di istruzioni più volte, finché una condizione è verificata o per un certo numero di elementi.
forIl ciclo for in Python serve per iterare su sequenze (liste, stringhe, tuple, range, ecc.).
# Esempio base di ciclo for con range
for i in range(5):
print("Iterazione numero:", i)
range()La funzione range() genera una sequenza di numeri interi.
| Sintassi | Significato | Esempio | Output |
|---|---|---|---|
range(n) | da 0 a n-1 | range(5) | 0,1,2,3,4 |
range(a, b) | da a a b-1 | range(2,5) | 2,3,4 |
range(a, b, step) | da a a b-1, con passo step | range(1,10,2) | 1,3,5,7,9 |
# range con valori di inizio, fine e passo
for i in range(1, 11, 2):
print("Numero dispari:", i)
# Iterazione su una lista di nomi
nomi = ["Anna", "Luca", "Marco"]
for nome in nomi:
print("Ciao", nome)
INFO
Il ciclo for in Python non è un ciclo “classico” come in C o Java.
Non serve un contatore: Python itera direttamente sugli elementi.
whileIl ciclo while ripete un blocco di istruzioni finché una condizione rimane vera.
# Esempio base di ciclo while
contatore = 0
while contatore < 5:
print("Contatore:", contatore)
contatore += 1
# Ciclo che termina quando l'utente scrive "esci"
parola = ""
while parola != "esci":
parola = input("Scrivi qualcosa ('esci' per terminare): ")
print("Hai scritto:", parola)
WARNING
Attenzione ai cicli infiniti: se la condizione non diventa mai False, il programma non terminerà.
Python offre tre istruzioni speciali per modificare il comportamento dei cicli:
| Istruzione | Effetto |
|---|---|
break | Interrompe il ciclo immediatamente |
continue | Salta l’iterazione corrente e passa alla successiva |
pass | Non fa nulla; usata come segnaposto |
# Uso di break, continue e pass
for i in range(1, 10):
if i == 5:
break # Interrompe il ciclo
if i % 2 == 0:
continue # Salta i numeri pari
if i == 7:
pass # Non fa nulla
print(i)
TIP
pass è utile quando si vuole lasciare un blocco vuoto, ad esempio durante la scrittura iniziale di una funzione o ciclo.
I cicli possono essere inseriti uno dentro l’altro. Ogni ciclo interno verrà eseguito completamente per ogni iterazione di quello esterno.
# Tabellina 3x3 con cicli annidati
for i in range(1, 4):
for j in range(1, 4):
print(f"{i} x {j} = {i*j}")
print("---")
INFO
I cicli annidati sono usati spesso per matrici, tabelle o algoritmi di ricerca combinata.
else nei cicliIn Python, i cicli for e while possono avere una clausola else.
Il blocco else viene eseguito solo se il ciclo termina normalmente, cioè senza essere interrotto da break.
# Esempio di ciclo for con else
for n in range(1, 6):
print(n)
if n == 3:
break
else:
print("Ciclo completato senza interruzioni.")
print("Fine del programma.")
| Struttura | Descrizione breve | Esempio tipico |
|---|---|---|
if / elif / else | Selezione condizionale | Verifica condizioni |
for | Itera su sequenze | Liste, range, stringhe |
while | Ciclo basato su condizione | Ripetizione fino a fine |
break | Interrompe un ciclo | Terminazione anticipata |
continue | Salta iterazione corrente | Controllo fine del ciclo |
pass | Non esegue nulla | Strutture vuote |
INFO
Le strutture di controllo permettono di creare algoritmi complessi, combinando logica condizionale e ripetizione controllata.
Scrivi un programma che chieda all’utente un numero e stampi se è positivo, negativo o zero.
Chiedi un numero N e calcola la somma di tutti i numeri da 1 a N utilizzando un ciclo for.
whileCrea un ciclo while che conti da 1 a 10 e si interrompa se raggiunge il numero 7.
1) Cosa fa l'istruzione `if`?
2) Qual è la differenza tra `for` e `while`?
3) A cosa serve `break` in un ciclo?
4) Quando viene eseguito l'`else` di un ciclo `for`?
5) Qual è lo scopo dell'istruzione `pass`?