Sostieni AppuntiFacili con una piccola donazione su PayPal

Dona con PayPal
AppuntiFacili
Torna Indietro Segnala errore

Strutture di Controllo

✍️ Dennis Turco 🏷️ Informatica 📘 Python
Ultima modifica:
#python#programmazione#operatori e controllo del flusso#strutture di controllo

1. Introduzione

Le 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:

TipoDescrizioneEsempio tipico
SelezioneEsegue blocchi diversi di codice in base a una condizioneif, elif, else
Iterazione (Cicli)Ripete un blocco di codice più volte finché una condizione è verafor, 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.

2. Struttura condizionale: if, elif, else

L’istruzione if consente di verificare una condizione logica ed eseguire un blocco di codice solo se essa è vera (True).

Sintassi generale

# 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.

Esempio pratico

python

Operatori di confronto

OperatoreSignificatoEsempioRisultato
==Uguale a5 == 5True
!=Diverso da5 != 3True
>Maggiore di7 > 2True
<Minore di4 < 1False
>=Maggiore o uguale3 >= 3True
<=Minore o uguale2 <= 5True

TIP

Le condizioni in Python non richiedono parentesi tonde, ma devono essere seguite da : e un rientro del blocco successivo.

3. Condizioni composte e logiche

È possibile combinare più condizioni tramite operatori logici.

OperatoreSignificatoEsempioRisultato
andEntrambe verex > 0 and x < 10True se x è compreso tra 0 e 10
orAlmeno una verax < 0 or x > 10True se x è fuori dall’intervallo
notNegazionenot(x == 5)True se x è diverso da 5

Esempio di condizione multipla

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.

4. Strutture iterative (Cicli)

Le strutture iterative consentono di ripetere un blocco di istruzioni più volte, finché una condizione è verificata o per un certo numero di elementi.

4.1 Il ciclo for

Il 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)

Funzione range()

La funzione range() genera una sequenza di numeri interi.

SintassiSignificatoEsempioOutput
range(n)da 0 a n-1range(5)0,1,2,3,4
range(a, b)da a a b-1range(2,5)2,3,4
range(a, b, step)da a a b-1, con passo steprange(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)

4.2 Ciclo su sequenze

# 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.

5. Ciclo while

Il ciclo while ripete un blocco di istruzioni finché una condizione rimane vera.

Sintassi base

# Esempio base di ciclo while
contatore = 0

while contatore < 5:
    print("Contatore:", contatore)
    contatore += 1

Esempio pratico

# 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à.

6. Istruzioni di controllo del ciclo

Python offre tre istruzioni speciali per modificare il comportamento dei cicli:

IstruzioneEffetto
breakInterrompe il ciclo immediatamente
continueSalta l’iterazione corrente e passa alla successiva
passNon fa nulla; usata come segnaposto

Esempi

# 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.

7. Cicli annidati

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.

8. Struttura else nei cicli

In 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.")

9. Riassunto generale

StrutturaDescrizione breveEsempio tipico
if / elif / elseSelezione condizionaleVerifica condizioni
forItera su sequenzeListe, range, stringhe
whileCiclo basato su condizioneRipetizione fino a fine
breakInterrompe un cicloTerminazione anticipata
continueSalta iterazione correnteControllo fine del ciclo
passNon esegue nullaStrutture vuote

INFO

Le strutture di controllo permettono di creare algoritmi complessi, combinando logica condizionale e ripetizione controllata.

10. Esercizi

10.1 Esercizio - Numero positivo o negativo

Scrivi un programma che chieda all’utente un numero e stampi se è positivo, negativo o zero.

10.2 Esercizio - Somma dei numeri da 1 a N

Chiedi un numero N e calcola la somma di tutti i numeri da 1 a N utilizzando un ciclo for.

10.3 Esercizio - Contatore con while

Crea un ciclo while che conti da 1 a 10 e si interrompa se raggiunge il numero 7.

11. Quiz a risposta multipla

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`?

Prenota una lezione