
# -- PROGRAMMI 1. OSA - FUNKTSIOON TUTVUSTUS() --
 
# Defineerime funktsiooni, mis trükib ekraanile programmi tutvustuse ja sõnastikus olevate sõnade arvu
def tutvustus():
    print("Inglise-eesti sõnastik (" + str(len(inglise_sõnad)) + " sõna)")
    print("'v' - välju")
    print("'a' - abi")
 
 
# -- PROGRAMMI 2. OSA - FAILI SISSELUGEMINE --
 
# Avame faili 'sonastik.txt', mis on kodeeringus UTF-8
f = open('sonastik.txt', encoding='UTF-8')
 
# Kõik sõnad sorteerime listidesse vastavalt keelele
inglise_sõnad = []
eesti_sõnad = []
 
# Loeme failist esimese rea
rida = f.readline()
 
# Loeme failist ridu nii kaua, kuni neid jätkub
while rida != '':
 
    # Jagame rea tükkideks tabulaatori (TAB) kohalt (Pythonis '\t')
    sõnad = rida.split('\t')
 
    # Rea esimene pool (enne tabulaatorit) on ingliskeelne sõna
    # strip() eemaldab tühikud ja reavahetused sõne algusest ja lõpust
    inglise_sõna = sõnad[0].strip().lower()
    # Rea teine pool (pärast tabulaatorit) on eestikeelne sõna
    eesti_sõna = sõnad[1].strip().lower()
 
    # Lisame ingliskeelse ja eestikeelse sõna vastavatesse listidesse
    inglise_sõnad.append(inglise_sõna)
    eesti_sõnad.append(eesti_sõna)
 
    # Loeme sisse järgmise rea, pärast seda hakkab tsükkel otsast peale
    rida = f.readline()
 
# Sulgeme faili
f.close()
 
 
# -- PROGRAMMI 3. OSA - FUNKTSIOONI RAKENDAMINE JA OTSIMINE --
 
# Rakendame funktsiooni tutvustus()
tutvustus()
 
# Küsime kasutajalt sõne, otsime sellele vaste ning väljastame selle
# Seda teeme lõpmatu tsükliga, mida katkestame õiges kohas käsuga 'break'
while True:
 
    # Küsime kasutajalt sõna
    otsing = input('Sisesta otsitav ingliskeelne sõna: ')
 
    # Kui kasutaja sisestatud sõnas on suurtähti, siis nüüd teeme need väikseks
    otsing = otsing.lower()
 
    # Kui kasutaja sisestab 'v', siis lõpetame tsükli
    if otsing == 'v':
        # Katkestame tsükli tegevuse, programmi täitmist jätkatakse tsükli lõpust
        break
 
    # Kui kasutaja sisestab 'a', siis rakendame funktsiooni tutvustus()
    elif otsing == 'a':
        tutvustus()
 
    # Kui kasutaja sisestatud sõna on listis 'inglise_sõnad', siis otsime sõnale vaste ning väljastame selle
    elif otsing in inglise_sõnad:
        print('Inglise keeles: ' + otsing)
        # Leiame, mis indeksiga kohal on 'otsing' listis 'inglise_sõnad
        otsitava_sõna_indeks = inglise_sõnad.index(otsing)
        # Vaste on samal kohal listis eesti_sõnad
        print('Eesti keeles: ' + eesti_sõnad[otsitava_sõna_indeks])
 
    # Kui ükski eelnevatest tingimustest ei ole tõene, siis sõnastikus sellist sõna ei leidu
    else:
        print('Sellist sõna pole!')