Codice Fiscale Inverso
Codegrind Team•Jul 10 2024
Descrizione del Progetto
In questo progetto, realizzerai un programma che estrae i dati personali da un codice fiscale italiano utilizzando Python. Il programma decodificherĂ le informazioni relative al nome, cognome, data di nascita, sesso e luogo di nascita.
Requisiti
- Librerie Python: Utilizzare le librerie standard di Python.
- Interfaccia Utente: Creare una semplice interfaccia utente a riga di comando che permetta all’utente di inserire il codice fiscale.
- Decodifica del Codice Fiscale:
- Estrarre le informazioni relative al cognome e al nome.
- Estrarre e decodificare la data di nascita e il sesso.
- Estrarre e decodificare il codice del luogo di nascita.
Passaggi
- Raccogliere il Codice Fiscale dell’Utente: Chiedere all’utente di inserire il codice fiscale.
- Decodificare il Codice Fiscale:
- Estrarre e decodificare il cognome e il nome.
- Estrarre e decodificare la data di nascita e il sesso.
- Estrarre e decodificare il codice del luogo di nascita.
- Visualizzare i Dati Estratti.
Esempio di Codice
import datetime
comuni = {
'H501': 'ROMA',
'F205': 'MILANO',
'F839': 'NAPOLI',
# Aggiungi altri comuni qui
}
def estrai_nome(codice):
vocali = 'AEIOU'
consonanti = ''.join([c for c in codice if c not in vocali])
return consonanti
def estrai_data_nascita(codice, sesso):
mese_codice = 'ABCDEHLMPRST'
anno = int(codice[:2])
if anno < 40:
anno += 2000
else:
anno += 1900
mese = mese_codice.index(codice[2])
giorno = int(codice[3:5])
if sesso == 'F':
giorno -= 40
return datetime.date(anno, mese + 1, giorno)
def estrai_comune(codice):
return comuni.get(codice, 'Comune sconosciuto')
def decodifica_codice_fiscale(cf):
cognome = estrai_nome(cf[:3])
nome = estrai_nome(cf[3:6])
sesso = 'F' if int(cf[9:11]) > 31 else 'M'
data_nascita = estrai_data_nascita(cf[6:11], sesso)
comune = estrai_comune(cf[11:15])
return cognome, nome, data_nascita, sesso, comune
def main():
print("Decodifica Codice Fiscale")
cf = input("Inserisci il codice fiscale: ").upper()
if len(cf) != 16:
print("Codice fiscale non valido.")
return
cognome, nome, data_nascita, sesso, comune = decodifica_codice_fiscale(cf)
print(f"Cognome: {cognome}")
print(f"Nome: {nome}")
print(f"Data di Nascita: {data_nascita.strftime('%d/%m/%Y')}")
print(f"Sesso: {sesso}")
print(f"Comune di Nascita: {comune}")
if __name__ == "__main__":
main()
Istruzioni per l’Esecuzione
- Salva il codice in un file: Ad esempio
decodifica_codice_fiscale.py
. - Esegui il programma:
python decodifica_codice_fiscale.py
- Interazione con l’utente:
- Inserisci il codice fiscale.
- Il programma decodificherĂ e visualizzerĂ i dati personali relativi al cognome, nome, data di nascita, sesso e comune di nascita.
Estensioni Possibili
- Interfaccia Grafica: Utilizzare una libreria come
tkinter
per creare un’interfaccia grafica per il decodificatore di codice fiscale. - Validazione: Aggiungere funzionalità per validare il codice fiscale inserito dall’utente, come il controllo del carattere di controllo.
- Dizionari Completi: Utilizzare un dizionario completo dei codici catastali per i comuni italiani per una maggiore precisione.