3. Operatori e Espressioni in Python
Impariamo a fare calcoli e operazioni con i nostri dati
📚 Cosa sono gli operatori?
Gli operatori sono simboli speciali che ci permettono di eseguire operazioni sui dati.
Puoi pensarli come i tasti di una calcolatrice: il tasto + per sommare, il tasto - per sottrarre, e così via.
Un’espressione è una combinazione di valori, variabili e operatori che Python può calcolare
per ottenere un risultato. Per esempio: 5 + 3 è un’espressione che vale 8.
In questa lezione impareremo a usare tutti i principali operatori di Python per fare calcoli matematici,
confronti e operazioni logiche.
3.1 Operatori Aritmetici
Gli operatori aritmetici sono quelli che usiamo per fare calcoli matematici. Python ci offre tutti gli operatori
che ci aspetteremmo da una calcolatrice, e anche qualcuno in più!
📖 Vediamoli in dettaglio
➕ Addizione (+) e ➖ Sottrazione (-)
Questi sono gli operatori più semplici e funzionano esattamente come te li aspetti!
prezzo_libro = 15
prezzo_penna = 2
totale = prezzo_libro + prezzo_penna
print(“Totale:”, totale) # Stampa: Totale: 17
# Sottrazione
budget = 50
spesa = 35
resto = budget – spesa
print(“Mi restano:”, resto) # Stampa: Mi restano: 15
✖️ Moltiplicazione (*)
La moltiplicazione funziona con i numeri, ma ha anche un effetto speciale con le stringhe!
prezzo_unitario = 5
quantita = 3
totale = prezzo_unitario * quantita
print(totale) # Stampa: 15
# Moltiplicazione con stringhe (ripete la stringa)
simbolo = “★”
stelle = simbolo * 5
print(stelle) # Stampa: ★★★★★
➗ Divisione (/) e Divisione Intera (//)
Python ci offre due tipi di divisione: quella normale e quella intera.
a = 10
b = 3
risultato = a / b
print(risultato) # Stampa: 3.3333333333333335
# Divisione intera (restituisce solo la parte intera)
risultato_intero = a // b
print(risultato_intero) # Stampa: 3
💡 Quando usare la divisione intera? È utile quando vogliamo sapere “quante volte ci sta”
un numero in un altro. Per esempio: se ho 10 caramelle e le voglio dividere tra 3 amici, quante caramelle
riceve ognuno? 10 // 3 = 3 caramelle a testa!
📐 Operatore Modulo (%)
L’operatore modulo restituisce il resto di una divisione. È molto utile per verificare
se un numero è divisibile per un altro!
a = 10
b = 3
resto = a % b
print(resto) # Stampa: 1 (perché 10 = 3*3 + 1)
# Verificare se un numero è pari
numero = 8
is_pari = (numero % 2 == 0)
print(is_pari) # Stampa: True (8 è pari)
✨ Trucco utile: Se numero % 2 == 0, il numero è pari.
Se numero % 2 == 1, il numero è dispari!
🔺 Elevamento a Potenza (**)
L’operatore ** eleva un numero a una potenza. È come moltiplicare un numero per se stesso più volte.
quadrato = 5 ** 2 # 5 elevato alla 2 = 5 * 5
print(quadrato) # Stampa: 25
cubo = 3 ** 3 # 3 elevato alla 3 = 3 * 3 * 3
print(cubo) # Stampa: 27
# Possiamo anche calcolare radici quadrate!
radice = 16 ** 0.5 # √16
print(radice) # Stampa: 4.0
🔢 Funzione round() – Arrotondamento
La funzione round() ci permette di arrotondare i numeri decimali. È molto utile quando vogliamo
mostrare risultati più leggibili o limitare il numero di cifre decimali.
Sintassi:
round(numero, cifre_decimali)
numero = 3.7
arrotondato = round(numero)
print(arrotondato) # Stampa: 4
numero2 = 3.2
arrotondato2 = round(numero2)
print(arrotondato2) # Stampa: 3
# Arrotondamento con decimali specifici
pi_greco = 3.14159265
pi_due_decimali = round(pi_greco, 2)
print(pi_due_decimali) # Stampa: 3.14
pi_quattro_decimali = round(pi_greco, 4)
print(pi_quattro_decimali) # Stampa: 3.1416
Esempio pratico – Calcolo prezzo con IVA:
iva = 0.22 # 22%
prezzo_con_iva = prezzo_base + (prezzo_base * iva)
print(“Prezzo senza arrotondamento:”, prezzo_con_iva)
# Stampa: 24.3878
prezzo_finale = round(prezzo_con_iva, 2)
print(“Prezzo arrotondato:”, prezzo_finale)
# Stampa: 24.39
💡 Quando usare round()? È perfetto per mostrare prezzi (2 decimali), percentuali,
o qualsiasi risultato che deve essere più leggibile. Per esempio, invece di mostrare
3.3333333333, possiamo mostrare 3.33!
💻 Esempio Pratico: Tutti gli operatori insieme
b = 3
print(“Addizione:”, a + b) # 13
print(“Sottrazione:”, a – b) # 7
print(“Moltiplicazione:”, a * b) # 30
print(“Divisione:”, a / b) # 3.333…
print(“Divisione (arrotondata):”, round(a / b, 2)) # 3.33
print(“Divisione intera:”, a // b) # 3
print(“Resto:”, a % b) # 1
print(“Potenza:”, a ** b) # 1000
3.2 Operatori di Confronto
Gli operatori di confronto servono per confrontare due valori. Il risultato è sempre un valore booleano:
True (vero) o False (falso).
📊 Esempi Pratici
maggiorenne = eta >= 18
print(maggiorenne) # Stampa: True
voto = 7
sufficiente = voto >= 6
print(sufficiente) # Stampa: True
temperatura = 15
fa_freddo = temperatura < 10
print(fa_freddo) # Stampa: False
⚠️ Attenzione: Per verificare l’uguaglianza usiamo == (due simboli di uguale),
NON = (che serve per assegnare valori alle variabili)!
3.3 Operatori Logici
Gli operatori logici ci permettono di combinare più condizioni insieme. Sono molto utili quando vogliamo
verificare che più cose siano vere contemporaneamente.
🔗 Operatore AND
L’operatore and restituisce True solo se TUTTE le condizioni sono vere.
ha_patente = True
# Posso guidare solo se ho almeno 18 anni E ho la patente
puo_guidare = eta >= 18 and ha_patente
print(puo_guidare) # Stampa: True
# Altro esempio
voto = 8
presente = True
promosso = voto >= 6 and presente
print(promosso) # Stampa: True
🔀 Operatore OR
L’operatore or restituisce True se ALMENO UNA delle condizioni è vera.
# È weekend se è sabato O domenica
is_weekend = giorno == “sabato” or giorno == “domenica”
print(is_weekend) # Stampa: True
# Altro esempio
eta = 10
ha_accompagnatore = True
puo_entrare = eta >= 18 or ha_accompagnatore
print(puo_entrare) # Stampa: True (anche se non ha 18 anni)
🔄 Operatore NOT
L’operatore not inverte un valore booleano: trasforma True in False e viceversa.
bel_tempo = not piove
print(bel_tempo) # Stampa: True
# Altro esempio
is_maggiorenne = True
is_minorenne = not is_maggiorenne
print(is_minorenne) # Stampa: False
3.4 Ordine di Precedenza degli Operatori
Quando scriviamo espressioni complesse, Python segue delle regole precise su quale operazione eseguire per prima,
proprio come in matematica (prima le moltiplicazioni, poi le addizioni, ecc.).
📋 Ordine di precedenza (dal più alto al più basso):
- Parentesi
( )– Hanno la massima priorità - Potenza
** - Moltiplicazione, Divisione, Modulo
*///% - Addizione, Sottrazione
+- - Confronti
==!=><>=<= - NOT
not - AND
and - OR
or
risultato = 5 + 3 * 2
print(risultato) # Stampa: 11 (prima fa 3*2=6, poi 5+6=11)
# Con le parentesi possiamo cambiare l'ordine
risultato = (5 + 3) * 2
print(risultato) # Stampa: 16 (prima fa 5+3=8, poi 8*2=16)
💡 Consiglio: Quando hai dubbi, usa le parentesi! Rendono il codice più chiaro e ti assicuri
che Python esegua le operazioni nell'ordine che vuoi tu.
🎯 Esercizi Pratici
METTIAMOCI ALLA PROVA!
1️⃣ Calcolo dell'età
Chiedi all'utente l'anno di nascita e l'anno corrente. Calcola e stampa l'età corrente.
In che anno sei nato? 2004
In che anno siamo? 2025
Hai 21 anni
2️⃣ Calcolatrice semplice
Chiedi all'utente due numeri e stampa il risultato di tutte le operazioni: somma, sottrazione, moltiplicazione e divisione.
Inserisci il primo numero: 8
Inserisci il secondo numero: 2
Somma: 10
Sottrazione: 6
Moltiplicazione: 16
Divisione: 4.0
3️⃣ Convertitore di temperatura
Chiedi una temperatura in gradi Celsius e convertila in Fahrenheit.
Formula: F = C × 9/5 + 32
Inserisci la temperatura in gradi Celsius: 20
20°C equivalgono a 68.0°F
4️⃣ Calcolo del resto
Chiedi all'utente due numeri (dividendo e divisore) e stampa il risultato della divisione intera e il resto.
Inserisci il dividendo: 10
Inserisci il divisore: 3
Quoziente: 3
Resto: 1
5️⃣ Media di tre numeri
Chiedi all'utente tre numeri e calcola la loro media aritmetica.
Inserisci il primo numero: 4
Inserisci il secondo numero: 8
Inserisci il terzo numero: 6
La media è: 6.0
6️⃣ Distanza tra due numeri
Chiedi all'utente due numeri e calcola la loro differenza assoluta (il valore assoluto della differenza).
Suggerimento: Usa la funzione abs() per ottenere il valore assoluto.
Inserisci il primo numero: 20
Inserisci il secondo numero: 35
La distanza tra i numeri è: 15
7️⃣ Cambio monete
Chiedi all'utente un importo in euro (può essere decimale) e converti in centesimi.
Inserisci un importo in euro: 3.50
3.50€ equivalgono a 350 centesimi
8️⃣ Aumento percentuale
Chiedi all'utente un prezzo iniziale e una percentuale di aumento, poi calcola il nuovo prezzo.
Formula: nuovo_prezzo = prezzo + (prezzo × percentuale / 100)
Inserisci il prezzo iniziale: 100
Inserisci l'aumento percentuale: 10
Il nuovo prezzo è: 110.0€
💻 Esercizi Interattivi Online
Vuoi fare pratica con esercizi interattivi e verificare subito i tuoi risultati?
📚 Riepilogo della Lezione
✅ Cosa abbiamo imparato:
- Operatori aritmetici:
+-*///%** - Operatori di confronto:
==!=><>=<= - Operatori logici:
andornot - L'ordine di precedenza degli operatori
- Come usare le parentesi per controllare l'ordine delle operazioni
🔑 Concetti chiave da ricordare:
- La divisione
/restituisce sempre un float, anche se i numeri sono interi - La divisione intera
//restituisce solo la parte intera del risultato - Il modulo
%è perfetto per verificare se un numero è pari o dispari - Per l'uguaglianza usa
==, NON=(che è per l'assegnazione) andrichiede che TUTTE le condizioni siano vereorrichiede che ALMENO UNA condizione sia vera- Usa le parentesi quando hai dubbi sull'ordine delle operazioni!
🚀 Complimenti!
Hai completato la lezione sugli operatori ed espressioni!
Ora sai come fare calcoli, confronti e prendere decisioni logiche in Python.
Continua a esercitarti per consolidare questi concetti fondamentali!
💪 Ricorda: La pratica rende perfetti! Più esercizi fai, più diventerai bravo!