Il codice fiscale è un identificatore personale utilizzato in Italia per vari scopi amministrativi e fiscali. Questo codice alfanumerico di 16 caratteri può essere decodificato per estrarre informazioni come il nome, il cognome, la data di nascita e il luogo di nascita di una persona. In questo articolo, esploreremo come utilizzare Python per convertire un codice fiscale in dati reali.

Struttura del Codice Fiscale
Un codice fiscale italiano è composto da 16 caratteri che rappresentano le seguenti informazioni:
- Cognome: 3 lettere
- Nome: 3 lettere
- Anno di nascita: 2 cifre
- Mese di nascita: 1 lettera
- Giorno di nascita e sesso: 2 cifre (il giorno è aumentato di 40 per le donne)
Script in Python
import string
# Mappa per i mesi di nascita
MONTH_MAP = {
'A': 'Gennaio', 'B': 'Febbraio', 'C': 'Marzo', 'D': 'Aprile', 'E': 'Maggio',
'H': 'Giugno', 'L': 'Luglio', 'M': 'Agosto', 'P': 'Settembre', 'R': 'Ottobre',
'S': 'Novembre', 'T': 'Dicembre'
}
# Esempio di mappa per i comuni (da completare con un database reale)
COMUNE_MAP = {
'H501': 'Roma',
'Z404': 'New York',
'D612': 'Milano',
'F205': 'Napoli',
'L736': 'Torino',
'B354': 'Bari',
'A662': 'Bologna',
'G273': 'Firenze',
'E463': 'Genova',
'M403': 'Palermo',
}
# Esempi di nomi e cognomi (da completare con un database reale)
NOMI_MAP = {
'RSS': 'Rossi',
'BNC': 'Bianchi',
'VRD': 'Verdi',
'NTL': 'Neri',
'BLU': 'Blu',
'CST': 'Cristian' # Aggiunto Cristian
# Aggiungi altri nomi qui
}
COGNOMI_MAP = {
'MRA': 'Mario',
'LUI': 'Luigi',
'FRN': 'Francesco',
'GIO': 'Giovanni',
'CLA': 'Claudio',
'GLL': 'Gallo' # Aggiunto Gallo
# Aggiungi altri cognomi qui
}
def parse_codice_fiscale(codice_fiscale):
if len(codice_fiscale) != 16:
raise ValueError("Il codice fiscale deve essere lungo 16 caratteri.")
cognome_code = codice_fiscale[:3]
nome_code = codice_fiscale[3:6]
anno = codice_fiscale[6:8]
mese = codice_fiscale[8]
giorno_sesso = int(codice_fiscale[9:11])
comune_code = codice_fiscale[11:15]
controllo = codice_fiscale[15]
if mese in MONTH_MAP:
mese_str = MONTH_MAP[mese]
else:
raise ValueError("Lettera del mese non valida.")
if giorno_sesso > 40:
giorno = str(giorno_sesso - 40).zfill(2)
sesso = 'Femmina'
else:
giorno = str(giorno_sesso).zfill(2)
sesso = 'Maschio'
anno_corrente = 2023
anno_nascita = int(anno)
secolo = (anno_corrente // 100) * 100
if anno_nascita > anno_corrente % 100:
anno_nascita += secolo - 100
else:
anno_nascita += secolo
if comune_code in COMUNE_MAP:
comune_str = COMUNE_MAP[comune_code]
else:
comune_str = comune_code
if cognome_code in COGNOMI_MAP:
cognome_str = COGNOMI_MAP[cognome_code]
else:
cognome_str = cognome_code
if nome_code in NOMI_MAP:
nome_str = NOMI_MAP[nome_code]
else:
nome_str = nome_code
return {
'Cognome': cognome_str,
'Nome': nome_str,
'Anno di nascita': anno_nascita,
'Mese di nascita': mese_str,
'Giorno di nascita': giorno,
'Sesso': sesso,
'Comune di nascita': comune_str,
'Carattere di controllo': controllo
}
def stampa_dati(dati):
print(f"Cognome: {dati['Cognome']}")
print(f"Nome: {dati['Nome']}")
print(f"Data di nascita: {dati['Giorno di nascita']} {dati['Mese di nascita']} {dati['Anno di nascita']}")
print(f"Sesso: {dati['Sesso']}")
print(f"Comune di nascita: {dati['Comune di nascita']}")
print(f"Carattere di controllo: {dati['Carattere di controllo']}")
if __name__ == "__main__":
codice_fiscale = input("Inserisci il codice fiscale: ")
try:
dati = parse_codice_fiscale(codice_fiscale)
stampa_dati(dati)
except ValueError as e:
print(f"Errore: {e}")
Ecco una spiegazione dello script:
Importazione delle Librerie
Per gestire l’anno corrente, usiamo la libreria datetime
. Questa libreria ci permette di ottenere la data e l’ora correnti, necessarie per calcolare l’anno di nascita.
Definizione delle Tabelle di Conversione
Abbiamo definito diverse tabelle di conversione come dizionari:
- Mappa dei Mesi: Questa mappa associa una lettera (che rappresenta il mese) al nome del mese in italiano. Ad esempio, ‘A’ sta per Gennaio, ‘B’ per Febbraio, e così via.
- Mappa dei Comuni: Questa mappa associa un codice a quattro caratteri al nome di un comune. Ad esempio, ‘H501’ corrisponde a Roma, ‘D612’ a Milano, e così via. Questa mappa è solo un esempio e dovrebbe essere completata con un database reale.
- Mappa dei Nomi e dei Cognomi: Questi dizionari associano un codice di tre caratteri a nomi e cognomi comuni. Ad esempio, ‘RSS’ corrisponde a Rossi e ‘MRA’ a Mario. Anche queste mappe sono parziali e dovrebbero essere ampliate.
Funzione di Parsing del Codice Fiscale
La funzione parse_codice_fiscale
prende un codice fiscale come input e lo analizza per estrarre le informazioni personali. Ecco come funziona:
- Verifica della Lunghezza: Controlliamo che il codice fiscale sia lungo esattamente 16 caratteri. Se non lo è, solleviamo un errore.
- Estrazione dei Codici: Il codice fiscale è suddiviso in parti:
- I primi tre caratteri rappresentano il cognome.
- I successivi tre caratteri rappresentano il nome.
- I due caratteri seguenti rappresentano l’anno di nascita.
- Il nono carattere rappresenta il mese di nascita.
- I due caratteri successivi rappresentano il giorno di nascita e il sesso.
- I quattro caratteri seguenti rappresentano il codice del comune di nascita.
- L’ultimo carattere è il carattere di controllo.
- Conversione del Mese: Utilizziamo la mappa dei mesi per convertire la lettera del mese in nome del mese. Se la lettera non è valida, restituiamo ‘Mese sconosciuto’.
- Calcolo del Giorno e Sesso: Se il valore del giorno è maggiore di 40, significa che la persona è di sesso femminile e dobbiamo sottrarre 40 dal valore del giorno. Altrimenti, è di sesso maschile e il giorno resta invariato.
- Calcolo dell’Anno di Nascita: Usando l’anno corrente, calcoliamo l’anno di nascita. Se il valore dell’anno nel codice fiscale è maggiore dell’anno corrente, significa che la persona è nata nel secolo precedente; altrimenti, è nata nel secolo corrente.
- Conversione del Comune: Utilizziamo la mappa dei comuni per ottenere il nome del comune corrispondente al codice. Se il codice non è valido, restituiamo ‘Comune sconosciuto’.
- Conversione di Nome e Cognome: Usando le mappe dei nomi e dei cognomi, otteniamo il nome e il cognome corrispondenti ai codici. Se i codici non sono presenti nella mappa, utilizziamo i codici stessi.
Restituzione dei Dati
La funzione restituisce un dizionario che contiene tutte le informazioni decodificate dal codice fiscale. Questo dizionario include il cognome, il nome, l’anno di nascita, il mese di nascita, il giorno di nascita, il sesso, il comune di nascita e il carattere di controllo.
Avvio script in Python:
Prima di tutto, devi salvare lo script Python in un file con estensione .py
.
Apri un editor di testo: Puoi usare un editor di testo come Visual Studio Code, Sublime Text, Notepad++ o anche il semplice Blocco Note di Windows.
- Copia e incolla lo script: Incolla il codice Python che hai creato (compreso il codice per la funzione
parse_codice_fiscale
e le mappe di conversione) in un nuovo file. - Salva il file: Salva il file con un nome significativo, ad esempio
codice_fiscale_parser.py
.
Installare Python
Se non hai ancora Python installato sul tuo computer, devi prima installarlo. Ecco come:
- Windows/Mac/Linux:
- Vai al sito ufficiale di Python: python.org.
- Scarica l’ultima versione di Python.
- Segui le istruzioni per l’installazione. Assicurati di selezionare l’opzione “Add Python to PATH” durante l’installazione su Windows.
Avviare lo Script:
Una volta che hai Python installato e il file .py
pronto, segui questi passaggi per avviare lo script:
Windows:
- Apri il Prompt dei Comandi:
- Premi
Win + R
, digitacmd
, e premiInvio
.
- Premi
- Naviga nella directory dove hai salvato il file:
- Usa il comando
cd
per cambiare directory. Ad esempio, se il file è sul desktop, digitacd Desktop
e premiInvio
.
- Usa il comando
- Esegui il file Python:
- Digita
python codice_fiscale_parser.py
e premiInvio
.
- Digita
Mac/Linux:
- Apri il Terminale:
- Puoi trovare il terminale nelle applicazioni o usando la ricerca del sistema operativo.
- Naviga nella directory dove hai salvato il file:
- Usa il comando
cd
come su Windows. Ad esempio,cd ~/Desktop
se il file è sul desktop.
- Usa il comando
- Esegui il file Python:
- Digita
python3 codice_fiscale_parser.py
e premiInvio
. (Su alcuni sistemi, potrebbe essere necessario usarepython
al posto dipython3
.)
- Digita
Ecco un esempio in python:


Ulteriori informazioni:
Il codice consente di trasformare un codice fiscale alfanumerico in informazioni leggibili come nome, cognome, data di nascita, sesso e comune di nascita, utilizzando tabelle di conversione e calcoli basati su regole predefinite. Ovviamente i dati per completarlo vanno inseriti tutti nel codice python. Questo è solo un esempio.