🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

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

  1. Librerie Python: Utilizzare le librerie standard di Python.
  2. Interfaccia Utente: Creare una semplice interfaccia utente a riga di comando che permetta all’utente di inserire il codice fiscale.
  3. 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

  1. Raccogliere il Codice Fiscale dell’Utente: Chiedere all’utente di inserire il codice fiscale.
  2. 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.
  3. 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

  1. Salva il codice in un file: Ad esempio decodifica_codice_fiscale.py.
  2. Esegui il programma:
    python decodifica_codice_fiscale.py
    
  3. 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

  1. Interfaccia Grafica: Utilizzare una libreria come tkinter per creare un’interfaccia grafica per il decodificatore di codice fiscale.
  2. Validazione: Aggiungere funzionalità per validare il codice fiscale inserito dall’utente, come il controllo del carattere di controllo.
  3. Dizionari Completi: Utilizzare un dizionario completo dei codici catastali per i comuni italiani per una maggiore precisione.