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ù!

Operatore Nome Esempio Risultato
+ Addizione 7 + 3 10
Sottrazione 7 – 3 4
* Moltiplicazione 7 * 3 21
/ Divisione 7 / 3 2.333…
// Divisione intera 7 // 3 2
% Modulo (resto) 7 % 3 1
** Elevamento a potenza 2 ** 3 8

📖 Vediamoli in dettaglio

➕ Addizione (+) e ➖ Sottrazione (-)

Questi sono gli operatori più semplici e funzionano esattamente come te li aspetti!

# Addizione
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!

# Moltiplicazione tra numeri
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.

# Divisione normale (restituisce sempre un float)
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!

# Resto della divisione
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.

# Potenze
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)
# Arrotondamento semplice (all’intero più vicino)
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:

prezzo_base = 19.99
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

a = 10
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).

Operatore Significato Esempio Risultato
== Uguale a 5 == 5 True
!= Diverso da 5 != 3 True
> Maggiore di 7 > 3 True
< Minore di 3 < 7 True
>= Maggiore o uguale 5 >= 5 True
<= Minore o uguale 3 <= 5 True

📊 Esempi Pratici

eta = 18
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 Significato Quando è True
and E logico Quando ENTRAMBE le condizioni sono vere
or O logico Quando ALMENO UNA delle condizioni è vera
not Negazione Inverte il valore: True diventa False e viceversa

🔗 Operatore AND

L’operatore and restituisce True solo se TUTTE le condizioni sono vere.

eta = 20
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.

giorno = “sabato”

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

piove = False
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):

  1. Parentesi ( ) – Hanno la massima priorità
  2. Potenza **
  3. Moltiplicazione, Divisione, Modulo * / // %
  4. Addizione, Sottrazione + -
  5. Confronti == != > < >= <=
  6. NOT not
  7. AND and
  8. OR or
# Esempio senza parentesi
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.

📝 Output esempio:

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.

📝 Output esempio:

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

📝 Output esempio:

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.

📝 Output esempio:

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.

📝 Output esempio:

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.

📝 Output esempio:

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.

📝 Output esempio:

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)

📝 Output esempio:

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?


Vai agli Esercizi Online →

📚 Riepilogo della Lezione

✅ Cosa abbiamo imparato:

  • Operatori aritmetici: + - * / // % **
  • Operatori di confronto: == != > < >= <=
  • Operatori logici: and or not
  • 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)
  • and richiede che TUTTE le condizioni siano vere
  • or richiede 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!

Torna in alto