Operatore Modulo in Python: concetti chiave spiegati
Scopri come usare l'operatore modulo (%) in Python per risolvere problemi reali: dal controllo pari/dispari alla crittografia, fino a strutture dati cicliche.
L’operatore modulo (%) in Python è un operatore aritmetico fondamentale usato per determinare il resto di un’operazione di divisione. Pur essendo semplice nel concetto, svolge un ruolo cruciale in molte applicazioni di programmazione. Dal verificare se un numero è pari o dispari, al ciclare attraverso sequenze e determinare gli anni bisestili, padroneggiare l’operatore modulo può migliorare le tue capacità di problem solving in Python.
Capire l’operatore modulo è essenziale perché compare spesso in:
Identificazione di numeri pari e dispari
Iterazione ciclica degli elementi
Implementazione di calcoli matematici in aritmetica modulare
Applicazioni pratiche reali come calcoli di date, crittografia e logica di gioco.
In questo blog troverai una guida completa all’uso dell’operatore modulo in Python, con sintassi, comportamento con diversi tipi numerici, casi d’uso ed esempi pratici. Se sei alle prime armi con Python, valuta il nostro corso Introduzione a Python.
Che cos’è l’operatore Modulo in Python?
L’operatore modulo (%) calcola il resto della divisione tra due numeri. Dati due numeri a (dividendo) e b (divisore), l’operazione modulo restituisce il resto quando a è diviso per b.
Contesto matematico
Il modulo affonda le sue radici nell’aritmetica modulare, un sistema aritmetico per gli interi in cui i numeri “ricominciano da capo” dopo aver raggiunto un certo valore (modulo). È ampiamente usato in crittografia, hashing e calcoli ciclici.
Pensa a un orologio a 12 ore: dopo le 12, invece di proseguire a 13, si torna a 1. Questo è, in sostanza, aritmetica modulare con modulo 12:
13 % 12 = 1, ovvero le 13 corrispondono all’1 nel formato a 12 ore.
Sintassi del Modulo in Python e uso di base
In Python, l’operatore modulo segue una sintassi semplice:
Quando dividiamo 7 per 3, otteniamo 2 con un resto di 1. L’operatore modulo ci restituisce quel resto. Allo stesso modo, 15 diviso per 4 dà 3 con resto 3, e 20 diviso per 5 dà esattamente 4 senza resto.
Lavorare con gli interi
Ora che abbiamo visto le basi dell’operatore modulo, esploriamo come si comporta con gli interi.
Modulo con interi positivi
Lavorare con interi positivi è il caso d’uso più lineare per l’operatore modulo:
# Examples with positive integersprint(10%3)print(25%7)print(100%10)Offerto da
In questi esempi, possiamo calcolare i risultati trovando quante volte il divisore entra nel dividendo e poi determinando cosa resta:
10 ÷ 3 = 3 resto 1, quindi 10 % 3 = 1
25 ÷ 7 = 3 resto 4, quindi 25 % 7 = 4
100 ÷ 10 = 10 resto 0, quindi 100 % 10 = 0
Modulo con interi negativi
Il comportamento dell’operatore modulo diventa più interessante con i numeri negativi. Python segue una regola specifica: il risultato di a % b ha sempre lo stesso segno di b (il divisore).
# Examples with negative integersprint(-10%3)print(10%-3)print(-10%-3)Offerto da
Questi risultati possono sembrare controintuitivi a prima vista, ma seguono una regola coerente:
Per -10 % 3: invece di ottenere -1 (che potresti aspettarti pensando a -10 ÷ 3 = -3 resto -1), Python restituisce 2. Questo perché Python cerca un valore tra 0 e 3 (escluso) che, aggiunto a un multiplo di 3, dia -10. La risposta è 2, perché -12 + 2 = -10.
Per 10 % -3: il risultato ha lo stesso segno del divisore (-3), quindi otteniamo -2. Questo perché 10 = (-3) × (-4) + (-2).
Per -10 % -3: il risultato è -1, perché -10 = (-3) × 3 + (-1).
Capire come Python gestisce i numeri negativi nelle operazioni modulo è cruciale quando lavori con calcoli ciclici, come:
Implementazione di funzioni di hashing
Risoluzione di problemi di aritmetica “a orologio”
Gestione di logiche di indicizzazione negativa nelle liste
Uso del Modulo con numeri in virgola mobile
L’operatore modulo di Python non è limitato agli interi; funziona anche con numeri in virgola mobile:
# Modulo with floating-point numbersprint(7.5%2)print(9.7%4.2)print(5.0%0.2)Offerto da
Con i floating point, l’operazione modulo segue lo stesso principio: restituisce il resto dopo la divisione. Tuttavia, per via del modo in cui i numeri in virgola mobile sono rappresentati nei computer (formato IEEE 754), possono verificarsi piccoli errori di arrotondamento.
Per esempio, invece di 1.3, Python restituisce 1.299999999999999, e invece di 0.2 restituisce 0.19999999999999973. Queste piccole imprecisioni sono comuni nell’aritmetica in virgola mobile e vanno considerate quando servono calcoli precisi.
Python offre anche la funzione math.fmod() dal modulo math come alternativa per operazioni di modulo in virgola mobile, che può gestire in modo diverso alcuni casi limite:
import math
print(math.fmod(7.5,2))print(math.fmod(-7.5,2))# Compare with Python's modulo operator print(-7.5%2)Offerto da
La differenza principale tra % e math.fmod() riguarda la gestione dei numeri negativi. Mentre % garantisce che il risultato abbia lo stesso segno del divisore e restituisce un valore nell’intervallo [0, divisore), math.fmod() garantisce che il risultato abbia lo stesso segno del dividendo. Questa distinzione è importante nelle applicazioni in cui il segno del resto conta.
Quindi, quando usare % e quando math.fmod()?
Usa % quando ti serve un comportamento coerente del segno (ad esempio, per ciclare in un intervallo).
Usa math.fmod() quando va preservato il segno del dividendo, come in simulazioni fisiche o funzioni matematiche.
Gestione dei numeri negativi nel modulo di Python
Come visto negli esempi precedenti, l’implementazione dell’operatore modulo con numeri negativi in Python potrebbe non allinearsi all’intuizione iniziale. Esploriamo questo comportamento in modo più sistematico:
# Understanding the pattern with negative numbersfor i inrange(-10,11):
result = i %3print(f"{i} % 3 = {result}")Offerto da
-10%3=2-9%3=0-8%3=1-7%3=2-6%3=0-5%3=1-4%3=2-3%3=0-2%3=1-1%3=20%3=01%3=12%3=23%3=04%3=15%3=26%3=07%3=18%3=29%3=010%3=1Offerto da
Nota lo schema: i risultati si ripetono ciclicamente 0 → 1 → 2, indipendentemente dal fatto che il dividendo sia positivo o negativo. Questo comportamento coerente rende l’operatore modulo particolarmente utile nei calcoli ciclici, come:
Rotazione degli indici in array o buffer circolari
Mapping di valori in funzioni periodiche (ad es. calcoli basati sul tempo)
La formula matematica che Python segue per il modulo è:
Import math
a % b = a -(b * math.floor(a / b))Offerto da
Questo garantisce che il risultato sia sempre tra 0 e b (escluso) quando b è positivo, o tra b e 0 (escluso) quando b è negativo.
Riepilogo dell’operatore Modulo in Python
L’operatore modulo (%) in Python calcola il resto di un’operazione di divisione. Segue una formula matematica coerente:
Regole chiave del comportamento del modulo in Python:
Per divisori positivi (b > 0)
Il risultato è sempre nell’intervallo [0, b) (inclusivo di 0, esclusivo di b).
Per divisori negativi (b < 0)
Il risultato è sempre nell’intervallo (b, 0] (esclusivo di b, inclusivo di 0).
Il resto assume lo stesso segno di b (il divisore).
Funziona sia con interi che con floating point
Per i numeri in virgola mobile, % segue la stessa formula ma può introdurre piccoli errori di arrotondamento dovuti alla precisione dei floating point.
Differenza tra % e math.fmod()
% garantisce che il resto abbia lo stesso segno del divisore.
math.fmod(a, b) garantisce che il resto abbia lo stesso segno del dividendo.
Casi d’uso comuni dell’operatore Modulo
Vediamo alcune applicazioni pratiche dell’operatore modulo con ulteriori esempi.
Verificare se un numero è pari o dispari
Una delle applicazioni più comuni dell’operatore modulo è determinare se un numero è pari o dispari:
defis_even(number):return number %2==0defis_odd(number):return number %2!=0# Testing the functions
numbers =[1,2,-3,4,-5,6,7]for num in numbers:if is_even(num):print(f"{num} is even")else:print(f"{num} is odd")Offerto da
1is odd
2is even
-3is odd
4is even
-5is odd
6is even
7is oddOfferto da
Questo funziona perché i numeri pari lasciano un resto di 0 quando divisi per 2, mentre i dispari lasciano un resto di 1 o -1.
Ciclare attraverso una sequenza
L’operatore modulo è perfetto per creare comportamenti ciclici, come ruotare attraverso una lista di elementi:
days =["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]defget_day(n):# Get the day of the week for the nth day, where day 0 is Mondayreturn days[n %len(days)]# Starting from Monday (day 0), what day is it after 10 days?print(get_day(10))# Output: "Thursday"# What day was it 15 days ago from Monday?print(get_day(-15))# Output: "Sunday"Offerto da
In questo esempio, a prescindere da quanto grande o piccolo (negativo) sia n, la funzione restituirà sempre un giorno valido della settimana.
Calcolo degli anni bisestili
Sebbene il calcolo degli anni bisestili coinvolga più condizioni, l’operatore modulo è centrale nell’algoritmo:
Gli anni bisestili seguono una regola precisa:
Un anno è bisestile se è divisibile per 4.
Ma se è divisibile per 100, non è bisestile.
A meno che non sia anche divisibile per 400, allora è bisestile.
defis_leap_year(year):return(year %4==0and year %100!=0)or(year %400==0)# Test the function
years =[1900,2000,2004,2020,2023,2024]for year in years:if is_leap_year(year):print(f"{year} is a leap year")else:print(f"{year} is not a leap year")Offerto da
1900isnot a leap year
2000is a leap year
2004is a leap year
2020is a leap year
2023isnot a leap year
2024is a leap yearOfferto da
Questo assicura che le regole del calendario gregoriano sugli anni bisestili siano applicate correttamente.
Esempi pratici di Modulo in Python
Ecco alcuni modi in cui puoi usare l’operatore modulo nei tuoi progetti Python:
Usare il modulo nei loop
L’operatore modulo è spesso usato nei loop per eseguire azioni a intervalli regolari:
# Print a message every 5 iterationsfor i inrange(1,11):print(f"Processing item {i}", end=": ")if i %5==0:print("Checkpoint reached!")else:print("Continuing...")Offerto da
Questo schema è utile per l’elaborazione a lotti, il reporting di avanzamento o qualsiasi funzionalità che debba avvenire periodicamente.
Modulo in applicazioni reali
Hashing delle password
Nelle applicazioni crittografiche, l’aritmetica modulare è fondamentale. Ecco un esempio semplificato di come il modulo potrebbe essere usato in una funzione di hashing di base:
defsimple_hash(text, modulus=1000000007):"""A very simple hash function using modulo."""
hash_value =0for char in text:# Combine the current hash with the character's Unicode code point
hash_value =(hash_value *31+ord(char))% modulus
return hash_value
# Test with some stringsprint(simple_hash("hello"))# Output a number between 0 and 1000000006print(simple_hash("world"))print(simple_hash("hello world"))print(simple_hash("こんにちは"))Offerto da
Questo è un esempio molto basilare, perché l’hashing crittografico reale è molto più complesso. L’operazione modulo assicura che il valore di hash resti entro un intervallo gestibile pur mantenendo le proprietà desiderabili di una buona funzione di hash.
Calcolo dell’ora su orologio
Il modulo è utile per gestire i calcoli del tempo, come convertire grandi numeri di ore in formati orari standard.
defconvert_to_12_hour_format(hours):return hours %12or12# Ensure 0 maps to 12# Exampleprint(convert_to_12_hour_format(13))# Output: 1print(convert_to_12_hour_format(24))# Output: 12print(convert_to_12_hour_format(36))# Output: 12Offerto da
Qui, l’operatore modulo fa “girare” le ore in un formato a 12 ore.
Sviluppo di giochi: implementare un sistema di turni multiplayer
Nei giochi a turni multiplayer, possiamo usare il modulo per ciclare tra i giocatori.
Molti sistemi di codici a barre usano operazioni di modulo per rilevare errori nei numeri scansionati.
defis_valid_isbn13(isbn):
digits =[int(d)for d instr(isbn)]
checksum =sum(d *(1if i %2==0else3)for i, d inenumerate(digits))return checksum %10==0# Example ISBN Checksum validationprint(is_valid_isbn13(9780306406157))# Output: Trueprint(is_valid_isbn13(9780306406158))# Output: FalseOfferto da
L’operatore modulo è uno strumento versatile nell’arsenale di Python che va ben oltre i semplici calcoli di resto. Dal determinare numeri pari/dispari all’implementazione di algoritmi complessi con schemi ciclici, il modulo permette soluzioni più pulite ed eleganti a vari problemi di programmazione.
Capendo sia la funzionalità di base sia il comportamento sfumato con diversi tipi di numeri, puoi sfruttare l’operatore modulo per scrivere codice più efficiente e leggibile. La prossima volta che ti ritrovi a implementare logiche che coinvolgono cicli, rotazioni o eventi periodici, ricorda che l’operatore modulo potrebbe essere la soluzione perfetta.
Come funziona l’operatore modulo con numeri negativi in Python?⌄
In Python, usando l’operatore modulo con numeri negativi, il risultato avrà lo stesso segno del divisore.
Si può usare l’operatore modulo con numeri in virgola mobile?⌄
Sì, l’operatore modulo funziona con i numeri in virgola mobile, ma fai attenzione ai piccoli errori di arrotondamento dovuti al modo in cui i float sono rappresentati nei computer.
Come viene usato l’operatore modulo in applicazioni reali?⌄
L’operatore modulo è usato in diverse applicazioni reali, come funzioni di hashing, calcoli dell’ora e rilevamento degli errori come la validazione ISBN.
Perché l’operatore modulo è importante in programmazione?⌄
L’operatore modulo è fondamentale per risolvere problemi che coinvolgono periodicità, divisione e “avvolgimento”, rendendolo uno strumento versatile per un coding efficiente e la progettazione di algoritmi.
Come fondatore di Martin Data Solutions e Data Scientist/ML & AI Engineer freelance, porto un portfolio vario che include Regression, Classification, NLP, LLM, RAG, reti neurali, metodi ensemble e computer vision.
Ho sviluppato con successo diversi progetti ML end-to-end, includendo data cleaning, analytics, modellazione e deployment su AWS e GCP, offrendo soluzioni efficaci e scalabili.
Ho realizzato applicazioni web interattive e scalabili con Streamlit e Gradio per casi d’uso in settori diversi.
Ho insegnato e fatto mentoring a studenti di data science e analytics, supportandone la crescita professionale con approcci di apprendimento personalizzati.
Ho progettato contenuti didattici per applicazioni di retrieval-augmented generation (RAG) su misura per le esigenze enterprise.
Ho scritto articoli tecnici di grande impatto su AI & ML, trattando temi come MLOps, database vettoriali e LLM, ottenendo un notevole coinvolgimento.
In ogni progetto che affronto, applico pratiche aggiornate di ingegneria del software e DevOps, come CI/CD, linting del codice, formattazione, monitoraggio dei modelli, tracciamento degli esperimenti e gestione robusta degli errori. Mi impegno a fornire soluzioni complete, trasformando gli insight dai dati in strategie pratiche che aiutano le aziende a crescere e a sfruttare al meglio data science, machine learning e AI.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
L’operatore modulo (
%) in Python è un operatore aritmetico fondamentale usato per determinare il resto di un’operazione di divisione. Pur essendo semplice nel concetto, svolge un ruolo cruciale in molte applicazioni di programmazione. Dal verificare se un numero è pari o dispari, al ciclare attraverso sequenze e determinare gli anni bisestili, padroneggiare l’operatore modulo può migliorare le tue capacità di problem solving in Python.Capire l’operatore modulo è essenziale perché compare spesso in:
In questo blog troverai una guida completa all’uso dell’operatore modulo in Python, con sintassi, comportamento con diversi tipi numerici, casi d’uso ed esempi pratici. Se sei alle prime armi con Python, valuta il nostro corso Introduzione a Python.
Che cos’è l’operatore Modulo in Python?
L’operatore modulo (
%) calcola il resto della divisione tra due numeri. Dati due numeria(dividendo) eb(divisore), l’operazione modulo restituisce il resto quandoaè diviso perb.Contesto matematico
Il modulo affonda le sue radici nell’aritmetica modulare, un sistema aritmetico per gli interi in cui i numeri “ricominciano da capo” dopo aver raggiunto un certo valore (modulo). È ampiamente usato in crittografia, hashing e calcoli ciclici.
Pensa a un orologio a 12 ore: dopo le 12, invece di proseguire a 13, si torna a 1. Questo è, in sostanza, aritmetica modulare con modulo 12:
13 % 12 = 1, ovvero le 13 corrispondono all’1 nel formato a 12 ore.Sintassi del Modulo in Python e uso di base
In Python, l’operatore modulo segue una sintassi semplice:
Vediamo alcuni esempi base:
Quando dividiamo
7per3, otteniamo2con un resto di1. L’operatore modulo ci restituisce quel resto. Allo stesso modo,15diviso per4dà3con resto3, e20diviso per5dà esattamente4senza resto.Lavorare con gli interi
Ora che abbiamo visto le basi dell’operatore modulo, esploriamo come si comporta con gli interi.
Modulo con interi positivi
Lavorare con interi positivi è il caso d’uso più lineare per l’operatore modulo:
In questi esempi, possiamo calcolare i risultati trovando quante volte il divisore entra nel dividendo e poi determinando cosa resta:
Modulo con interi negativi
Il comportamento dell’operatore modulo diventa più interessante con i numeri negativi. Python segue una regola specifica: il risultato di
a % bha sempre lo stesso segno dib(il divisore).Questi risultati possono sembrare controintuitivi a prima vista, ma seguono una regola coerente:
-10 % 3: invece di ottenere -1 (che potresti aspettarti pensando a -10 ÷ 3 = -3 resto -1), Python restituisce 2. Questo perché Python cerca un valore tra 0 e 3 (escluso) che, aggiunto a un multiplo di 3, dia -10. La risposta è 2, perché -12 + 2 = -10.10 % -3: il risultato ha lo stesso segno del divisore (-3), quindi otteniamo -2. Questo perché 10 = (-3) × (-4) + (-2).-10 % -3: il risultato è -1, perché -10 = (-3) × 3 + (-1).Capire come Python gestisce i numeri negativi nelle operazioni modulo è cruciale quando lavori con calcoli ciclici, come:
Uso del Modulo con numeri in virgola mobile
L’operatore modulo di Python non è limitato agli interi; funziona anche con numeri in virgola mobile:
Con i floating point, l’operazione modulo segue lo stesso principio: restituisce il resto dopo la divisione. Tuttavia, per via del modo in cui i numeri in virgola mobile sono rappresentati nei computer (formato IEEE 754), possono verificarsi piccoli errori di arrotondamento.
Per esempio, invece di
1.3, Python restituisce1.299999999999999, e invece di0.2restituisce0.19999999999999973. Queste piccole imprecisioni sono comuni nell’aritmetica in virgola mobile e vanno considerate quando servono calcoli precisi.Python offre anche la funzione
math.fmod()dal modulo math come alternativa per operazioni di modulo in virgola mobile, che può gestire in modo diverso alcuni casi limite:La differenza principale tra
%emath.fmod()riguarda la gestione dei numeri negativi. Mentre%garantisce che il risultato abbia lo stesso segno del divisore e restituisce un valore nell’intervallo [0, divisore),math.fmod()garantisce che il risultato abbia lo stesso segno del dividendo. Questa distinzione è importante nelle applicazioni in cui il segno del resto conta.Quindi, quando usare
%e quandomath.fmod()?%quando ti serve un comportamento coerente del segno (ad esempio, per ciclare in un intervallo).math.fmod()quando va preservato il segno del dividendo, come in simulazioni fisiche o funzioni matematiche.Gestione dei numeri negativi nel modulo di Python
Come visto negli esempi precedenti, l’implementazione dell’operatore modulo con numeri negativi in Python potrebbe non allinearsi all’intuizione iniziale. Esploriamo questo comportamento in modo più sistematico:
Nota lo schema: i risultati si ripetono ciclicamente
0 → 1 → 2, indipendentemente dal fatto che il dividendo sia positivo o negativo. Questo comportamento coerente rende l’operatore modulo particolarmente utile nei calcoli ciclici, come:La formula matematica che Python segue per il modulo è:
Questo garantisce che il risultato sia sempre tra
0eb(escluso) quando b è positivo, o trabe0(escluso) quandobè negativo.Riepilogo dell’operatore Modulo in Python
L’operatore modulo (
%) in Python calcola il resto di un’operazione di divisione. Segue una formula matematica coerente:Regole chiave del comportamento del modulo in Python:
b > 0)[0, b)(inclusivo di 0, esclusivo dib).b < 0)(b, 0](esclusivo dib, inclusivo di0).b(il divisore).%segue la stessa formula ma può introdurre piccoli errori di arrotondamento dovuti alla precisione dei floating point.%emath.fmod()%garantisce che il resto abbia lo stesso segno del divisore.math.fmod(a, b)garantisce che il resto abbia lo stesso segno del dividendo.Casi d’uso comuni dell’operatore Modulo
Vediamo alcune applicazioni pratiche dell’operatore modulo con ulteriori esempi.
Verificare se un numero è pari o dispari
Una delle applicazioni più comuni dell’operatore modulo è determinare se un numero è pari o dispari:
Questo funziona perché i numeri pari lasciano un resto di
0quando divisi per2, mentre i dispari lasciano un resto di1o-1.Ciclare attraverso una sequenza
L’operatore modulo è perfetto per creare comportamenti ciclici, come ruotare attraverso una lista di elementi:
In questo esempio, a prescindere da quanto grande o piccolo (negativo) sia n, la funzione restituirà sempre un giorno valido della settimana.
Calcolo degli anni bisestili
Sebbene il calcolo degli anni bisestili coinvolga più condizioni, l’operatore modulo è centrale nell’algoritmo:
Gli anni bisestili seguono una regola precisa:
Questo assicura che le regole del calendario gregoriano sugli anni bisestili siano applicate correttamente.
Esempi pratici di Modulo in Python
Ecco alcuni modi in cui puoi usare l’operatore modulo nei tuoi progetti Python:
Usare il modulo nei loop
L’operatore modulo è spesso usato nei loop per eseguire azioni a intervalli regolari:
Questo schema è utile per l’elaborazione a lotti, il reporting di avanzamento o qualsiasi funzionalità che debba avvenire periodicamente.
Modulo in applicazioni reali
Hashing delle password
Nelle applicazioni crittografiche, l’aritmetica modulare è fondamentale. Ecco un esempio semplificato di come il modulo potrebbe essere usato in una funzione di hashing di base:
Questo è un esempio molto basilare, perché l’hashing crittografico reale è molto più complesso. L’operazione modulo assicura che il valore di hash resti entro un intervallo gestibile pur mantenendo le proprietà desiderabili di una buona funzione di hash.
Calcolo dell’ora su orologio
Il modulo è utile per gestire i calcoli del tempo, come convertire grandi numeri di ore in formati orari standard.
Qui, l’operatore modulo fa “girare” le ore in un formato a 12 ore.
Sviluppo di giochi: implementare un sistema di turni multiplayer
Nei giochi a turni multiplayer, possiamo usare il modulo per ciclare tra i giocatori.
Validazione delle cifre nei codici a barre
Molti sistemi di codici a barre usano operazioni di modulo per rilevare errori nei numeri scansionati.
Conclusione
L’operatore modulo è uno strumento versatile nell’arsenale di Python che va ben oltre i semplici calcoli di resto. Dal determinare numeri pari/dispari all’implementazione di algoritmi complessi con schemi ciclici, il modulo permette soluzioni più pulite ed eleganti a vari problemi di programmazione.
Capendo sia la funzionalità di base sia il comportamento sfumato con diversi tipi di numeri, puoi sfruttare l’operatore modulo per scrivere codice più efficiente e leggibile. La prossima volta che ti ritrovi a implementare logiche che coinvolgono cicli, rotazioni o eventi periodici, ricorda che l’operatore modulo potrebbe essere la soluzione perfetta.
Se vuoi imparare di più su come usare Python nei tuoi progetti, dai un’occhiata al nostro corso interattivo, Introduzione alla Data Science in Python.