A harmadik feladat magyar-angol szótárának megfordításával készítsétek el az angol-magyar szótárt, majd ennek segítségével a függvényt, ami tetszőleges angol szöveget magyarra fordít!
A kézzel bevitt szótár nem jó megoldás! (használjátok a dict
típus items()
tagfüggvényét!)
Ha ismeretlen szóval találkoztok, akkor csináljátok azt, amit a Google Translator: csak írjátok ki az eredeti szót fordítás nélkül. ( A szöveg többi részét természetesen le kell fordítani.)
Nem baj, ha nyelvtanilag nem helyes, vagy értelmetlen a fordítás.
szotar={'a':'the',
'majom': 'monkey',
'kutya':'dog',
'szereti':'likes',
'banánt':'banana',
'kolbászt':'sausage'}
angol_mondat='The monkey likes banana. Every dog likes sausage.'
Először, megfordítjuk a dict
-et:
ratozs = dict() # Üres dict létrehozása
for i in range(len(szotar)): # A szotar elemein végigmegyünk...
ratozs[list(szotar.values())[i]] = list(szotar.keys())[i] # ... és a kulcsszavakat értékként, az értékeket kulcsszavakként mentjük az új szótárba
ratozs
Majd létrehozzuk a függvényt, ami lefordítja a mondatot. Ez lényegileg ugyanaz, mint a 3. feladatban, csak az angol szavak helyett magyar szavak vannak és fordítva.
def fordito(szotar, string):
angolszavak = string.split() # A kapott mondat feldarabolása
magyarszavak = list()
for szo in angolszavak: # A függvény végigmegy a mondat szavain
if szo in szotar:
magyarszavak += [szotar[szo]] # Ha a szó benne van a szótárban, a magyar szót használja
else:
magyarszavak += [szo] # Ha nincs, akkor az angolt
return " ".join(magyarszavak) # Az új szólista visszaalakítása stringgé
És leellenőrizzük, hogy jól működik-e: (sajnos az írásjelek és a nagyetűk miatt a hatékonyság csökken)
fordito(ratozs, angol_mondat)