I dizionari per fare una semplice traduzione ita/en

Un primo esempio semplice per approcciarsi alla struttura potentissima del dizionario in Python.

I dizionari sono strutture potentissime, presenti di default con il Python. Il loro comportamento è simile al dizionario dove troviamo:

parola: definizione che la descrive

Nell’esempio qui sotto, riportiamo un mini-dizionario che ha una parola e a fronte la sua traduzione. Nelle righe successive prepariamo una frase articolata che proviamo perciò a tradurre in modo un po’ grezzo e letterale con l’ausilio del nostro mini-dizionario.

Nello specifico ricorriamo alla funzione nativa split che tratta le stringhe di testo come una sorta di vettore e suddivide le parole separate tra spazi. Per ogni parola stampiamo la sua traduzione secca senza tenere conto del costrutto sintattico/grammaticale.

#per i dizionari traduttore
dizionario = { "casa":"home", "cane":"dog", "oggi":"today", "bella":"nice", "è":"is", "una":"a", "giornata":"day"}
#print (dizionario["casa"])

frase = "oggi è una bella giornata"
parole = frase.split(" ")
for parola in parole:
    print(dizionario[parola])

 Lo stesso esercizio lo possiamo come insieme di una funzione riutilizzabile più programma main.

def faiUnaTraduzione(frasedatradurre):
    assert isinstance(frasedatradurre, str) #controlla il tipo che gli si passa, in questo caso una stringa di testo
    parole = frasedatradurre.split(" ")
    for parola in parole:
        print(dizionario[parola])


if __name__=="__main__":
    #per i dizionari traduttore
    dizionario = { "casa":"home", "cane":"dog", "oggi":"today", "bella":"nice", "è":"is", "una":"a", "giornata":"day"}
    frase = "oggi è una bella giornata"
    faiUnaTraduzione(frase)

Altra versione con una funzione di ritorno

def faiUnaTraduzione(frasedatradurre):
    assert isinstance(frasedatradurre, str) #controlla il tipo che gli si passa, in questo caso una lista
    out = []
    dizionario = { "casa":"home", "cane":"dog", "oggi":"today", "bella":"nice", "è":"is", "una":"a", "giornata":"day"}
    parole = frasedatradurre.split(" ")
    for parola in parole:
        out.append(dizionario[parola])

    return (' '.join(out)) #prendo la lista di parole e la concateno con uno spazio e la funzione join


if __name__=="__main__":
    #per i dizionari traduttore

    frase = "oggi è una bella giornata"
    tradotto = faiUnaTraduzione(frase)
    print (tradotto)

Ultima modifica 16 Ottobre 2023