# Programm loendab kolmes failis esinevad tähtede esinemissagedused. # Loendamiseks kasutatakse sõnastikku (dictionary) # Failides olev tekst on erinevates keeltes # Tulemused trükitakse ekraanile. # Sagedused esitatakse protsendina. def sagedused(fnimi): "Funktsioon loendab tekstifailis tähetede esinemsisageduse ja tagastab selle kohta dictionary" tahed = {} # Argumendiga encoding saab selgeks teha, millises kodeeringus avatav fail on. fm = open(fnimi, 'r', encoding='ISO-8859-1') # Vältimaks olukorda, et tekstis puuduvad tähed ei teki ka sõnastikku, teeme valmis 0-e sisaldava sõnastiku. for t2ht in "abcdefghijklmnopqrstuvwxyz": tahed[t2ht] = 0 for rida in fm: rida = rida.lower() for taht in rida: if taht in "abcdefghijklmnopqrstuvwxyz": #if taht.isalpha(): - True, kui on a..z tahed[taht] += 1 return tahed def suhtelised_sagedused(tahed): "Funktsioon arvutab sõnastikus olevatele tähtedele sagedused protsentides" "Tagastab uue sõnastiku" protsendid = {} summa = 0 for t2ht in tahed: summa += tahed[t2ht] for t2ht in tahed: protsendid[t2ht] = tahed[t2ht]*100 / summa return protsendid # Peaprogrammi algus print("Programm loendab ja laseb võrrelda tähtede esinemissagedust erinevates keeltes.") # Loendatakse tähed sagedus_eesti = sagedused('eesti1.txt') print("eesti tehtud") sagedus_saksa = sagedused('saksa1.txt') print("saksa tehtud") sagedus_inglise = sagedused('inglise1.txt') print("ingl tehtud") # Leitakse sagedused protsentides prots_eesti = suhtelised_sagedused(sagedus_eesti) prots_saksa = suhtelised_sagedused(sagedus_saksa) prots_inglise = suhtelised_sagedused(sagedus_inglise) # Väljatrükk # Tähestiku alusel võetakse järjest tähed ning erinevatest sõnastikest saadakse tähe esinemissagedused. print(" eesti keel saksa keel inglise keel") for t2ht in "abcdefghijklmnopqrstuvxyz": print("%2s - %7.2f | %2s - %7.2f | %2s - %7.2f" % (t2ht, prots_eesti[t2ht] ,t2ht, prots_saksa[t2ht], t2ht, prots_inglise[t2ht])) print() print("Oli tore! :)")