8. praktikum
1. Absoluutväärtuste list
Kirjuta funktsioon abs_list
, mis võtab argumendiks arvulisti ning tagastab esialgsete arvude absoluutväärtuste listi.
2. Lihtne krüptimine
Mõtle välja mingi lihtne krüptimisskeem, mis seab igale sümbolile vastavusse mingi muu sümboli. Lihtsuse mõttes võime eeldada, et tegutseme ainult ladina suurtähtede ja tühikuga.
Üks võimalus on seada igale sümbolile vastavusse tähestikus temast n positsiooni edasi olev täht (tähestiku lõpust tuleb siis tulla ringiga tagasi algusesse). Vaata ka http://en.wikipedia.org/wiki/Caesar_cipher.
Kirjuta funktsioon krüpti_sõne
, mis võtab argumendiks mingi teksti (kus esinevad ainult lubatud sümbolid) ja tagastab krüptitud teksti.
Abifunktsiooniks soovitame kirjutada funktsiooni krüpti_list
, mis võtab argumendiks sümbolite listi ning krüptib selle, elemente muutes. Funktsiooni krüpti_sõne
ülesandeks jääks siis sõne teisendamine listiks, listi krüptimine ning krüptitud listi teisendamine sõneks.
Vihjed:
>>> ord('A') 65 >>> ord('B') 66 >>> chr(65) 'A' >>> list('tere') ['t', 'e', 'r', 'e'] >>> ''.join(['t', 'e', 'r', 'e']) 'tere'
3. Erinevad sõnad
Kirjuta funktsioon, mis võtab argumendiks sõne ja tagastab järjendi, mille elementideks on selles sõnes leiduvad erinevad sõnad (ilma seejuures suur- ja väiketähtedel vahet tegemata). Nt kui argument on "tere Tere tore"
, siis tuleks tagastada ["tere", "tore"]
. Eeldame, et kõik sõnad on üksteisest eraldatud vähemalt ühe tühiku või reavahetusega.
Vihje kirjavahemärkide eemaldamise ning suur- ja väiketähtede kohta:
>>> 'Edasi!'.strip('.!?,').lower() 'edasi'
Lisa 1: kasuta loodud funktsiooni programmis, mis küsib kasutajalt failinime ja tagastab selles failis esinevate erinevate sõnade loetelu.
Lisa 2 (raskem): muuda programmi/funktsiooni nii, et iga sõna kohta väljastatakse/tagastatakse ka sõna esinemiste arv. (Vihje: seda saab lahendada nt kahe abilistiga).
4. Järjestuse kontroll
Kirjuta funktsioon on_järjestatud
, mis võtab argumendiks järjendi ja tagastab True
või False
vastavalt sellele, kas järjendi elemendid on mittekahanevalt järjestatud või mitte.
5. Sõnastik koos autokorrektoriga
Kirjuta programm, mis küsib kasutajalt ingliskeelseid sõnu ja tagastab nende eestikeelse vaste. Aluseks võtta fail sonastik.txt (UTF-8). Kui kasutaja sisestab sõna, mida sõnastikus pole, siis tuleks otsida ja välja pakkuda mõni sarnane, sõnastikus olemasolev ingliskeelne sõna. Sarnasteks loeme järgmisi sõnepaare:
- üks täht on erinev, nt. lammas ja lamnas;
- ühes sõnas on üks täht vahelt või otstest puudu, nt lammas ja lmmas;
- ühes sõnas on teisega võrreldes kaks kõrvutiolevat tähte vastupidises järjekorras, nt lammas ja lammsa.
Võid ka ise mõelda välja lisareegleid sarnasuse määramiseks.
Kui kasutaja nõustub uue sõnaga, siis näidata selle tõlget.
Vihje: asendussõna otsimisel tuleks esmalt otsingupiirkonda mingi lihtsa kriteeriumi põhjal kitsendada.