Guida completa a Python
📘 Capitolo 4 – Strutture di Controllo in Python
1. Le condizioni: if
, elif
, else
Permettono di eseguire blocchi di codice solo se certe condizioni sono vere.
eta = 18
if eta >= 18:
print("Sei maggiorenne!")
elif eta > 13:
print("Sei un adolescente.")
else:
print("Sei un bambino.")
Importante: i blocchi sono indentati (rientrati) con 4 spazi o un tab.
2. Operatori di confronto
Operatore | Significato | Esempio (x = 5 ) |
---|---|---|
== | uguale a | x == 5 ✅ |
!= | diverso da | x != 10 ✅ |
> | maggiore di | x > 3 ✅ |
< | minore di | x < 7 ✅ |
>= | maggiore o uguale | x >= 5 ✅ |
<= | minore o uguale | x <= 4 ❌ |
3. Operatori logici: and
, or
, not
# Esempio con and
eta = 20
if eta >= 18 and eta < 65:
print("Età da lavoro")
# Esempio con or
if eta < 13 or eta > 70:
print("Tariffa scontata")
# Esempio con not
is_logged = False
if not is_logged:
print("Effettua il login")
4. Il ciclo while
Serve a ripetere qualcosa finché una condizione è vera.
x = 1
while x <= 5:
print(x)
x += 1 # equivale a x = x + 1
Attento ai loop infiniti! (
while True:
senzabreak
può bloccare il programma)
5. Il ciclo for
Il ciclo for
in Python è usato per scorrere elementi di una sequenza (list
, str
, range
, ecc.)
# range(start, stop, step)
for i in range(1, 6):
print(i) # stampa da 1 a 5
# Ciclo su una stringa
for lettera in "ciao":
print(lettera)
# Ciclo su una lista
frutti = ["mela", "pera", "banana"]
for frutto in frutti:
print(frutto)
6. Parole chiave speciali: break
, continue
, pass
# break ➝ esce dal ciclo
for i in range(10):
if i == 5:
break
print(i) # stampa da 0 a 4
# continue ➝ salta l'iterazione corrente
for i in range(5):
if i == 2:
continue
print(i) # stampa 0, 1, 3, 4
# pass ➝ non fa nulla (se serve un blocco vuoto)
if True:
pass
🧪 Esercizio pratico
- Chiedere un numero all’utente
- Controllare se è pari o dispari
- Stampare il risultato
- Usare un ciclo
for
per contare da 1 fino a quel numero
Soluzione in Python
# Chiediamo un numero all'utente
numero_input = input("Inserisci un numero intero positivo: ")
# Verifica dell'input
if numero_input.isdigit():
numero = int(numero_input)
# Verifica se è pari o dispari
if numero % 2 == 0:
print("Il numero è pari.")
else:
print("Il numero è dispari.")
# Conta da 1 a numero
print("Ora conto da 1 a", numero)
for i in range(1, numero + 1):
print(i)
else:
print("Errore: devi inserire un numero intero positivo!")
Cosa hai imparato qui?
- Uso del modulo
%
per capire se un numero è pari o dispari - Controllo dell’input con
.isdigit()
- Uso di
for
erange()
per contare da 1 a N
Versione migliorata dell’esercizio con ciclo while
while True:
# Chiediamo un numero all’utente
numero_input = input("Inserisci un numero intero positivo (o 'q' per uscire): ")
if numero_input.lower() == "q":
print("Uscita dal programma. Ciao!")
break
# Verifica dell'input
if numero_input.isdigit():
numero = int(numero_input)
# Verifica se è pari o dispari
if numero % 2 == 0:
print("Il numero è pari.")
else:
print("Il numero è dispari.")
# Conta da 1 a numero
print("Ora conto da 1 a", numero)
for i in range(1, numero + 1):
print(i)
else:
print("Errore: inserisci un numero valido o 'q' per uscire.")
print("-" * 30) # separatore visivo
Cosa è cambiato?
- Abbiamo usato
while True:
per creare un loop infinito finché l’utente non scrive"q"
. - Usato
break
per uscire dal loop se l’utente vuole terminare. - Il programma ora è interattivo e continuo, proprio come una vera app da terminale!