5. kodutöö
1. Suured väikeseks ja väikesed suureks
Kirjuta funktsioon suurväike, mis võtab argumendiks mingi sõne ning tagastab sõne järgmisel kujul:
- suured tähed on muudetud väikeseks;
- väikesed tähed on muudetud suureks;
- kõik kirjavahemärkide sümbolid on asendatud mingi ühe ja sama juhusliku kirjavahemärgisümboliga.
Näide:
>>> suurväike("MinA oleN Tubli!!") 'mINa OLEn tUBLI##' >>> suurväike("Aias sadas saia, Leiba ja Peedi-Porgandi pehmikut.") 'aIAS SADAS SAIA& lEIBA JA pEEDI&pORGANDI PEHMIKUT&'
Vihje:
>>> string.punctuation '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
Automaatkontroll. Funktsiooni nimi peab olema suurväike ja sellel funktsioonil peab olema täpselt üks argument, mis on sõne. Funktsioon peab tagastama sõne, kus kõik antud sõne suured tähed on asendatud väikestega, väikesed tähed suurtega ja kõik kirjavahemärkide sümbolid asendatud teatud ühe juhuslikult valitud kirjavahemärgisümboliga.
2. Suured väikeseks ja väikesed suureks failist lugemisega
Oletame, et meil on eelnev tekst tekstifailis.
Näide faili tekst.txt võimalikust sisust:
MinA oleN Tubli!! Aias sadas saia, Leiba ja Peedi-Porgandi pehmikut.
Kirjuta programm, mis
- küsib kasutajalt faili nime;
- loeb failist teksti;
- teeb tekstis asendused, kasutades eelmises ülesandes loodud funktsiooni suurväike;
- väljastab muudetud teksti ekraanile.
Näide programmi tööst
>>> %Run lahendus.py Sisesta faili nimi: tekst.txt mINa OLEn tUBLI## aIAS SADAS SAIA& lEIBA JA pEEDI&pORGANDI PEHMIKUT&
3. Peidetud tekst ylisalajane:9,0,11,15,14,23,18,15,12,12,23,29,29,0,15,14,0,11,15,8,5,0,23,24,12,5,13,1,19:ylisalajane
Antud kodutöö veebilehele (https://courses.cs.ut.ee/2022/programmeerimine/fall/Main/Kodu5) on peidetud informatsiooni, mida veebileht ei kuva, kuid mille võib leida html failist.
Kirjuta funktsioon loe_saladus, mis leiab veebilehte lugedes peidetud saladuse ja tagastab selle. Funktsioon võtab argumendiks veebilehe aadressi (URL) ning peidetud saladuse algus- ja lõputunnuse. Antud veebilehele peidetud informatsioon jääb märgiste “ylisalajane:” ja “:ylisalajane” vahele.
Näide:
>>> loe_saladus("https://courses.cs.ut.ee/2022/programmeerimine/Main/Kodu5", "ylisalajane:", ":ylisalajane") '0,1,2,3,4,5,6,7,8,9,10'
s4ladus:42:s4ladus
Vihje: Veebist lugemise näiteid leiad selle nädala viimases loenguvideos.
Vihje 2: tekst.find(“otsitavsõne”) tagastab otsitava sõne algusindeksi.
Mittekohustuslik lisaülesanne. Nagu näed, on peidetud saladus krüpteeritud ja koosneb komadega eraldatud numbritest. Püüa saladus dekrüpteerida. Tekst on krüpteeritud järgnevalt: iga arv näitab otsitava tähe järjekorranumbrit tähestikus, kusjuures 0 tähistab tühikut ning iga järgnev täht on eelnevast eraldatud komaga. Näiteks: 0 = “ “, 1 = “A”, 2 = “B” jne. Tähestiku saad ülesande lahendamiseks kopeerida siit: “ ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY”
Automaatkontroll. Funktsiooni nimi peab olema loe_saladus ja sellel funktsioonil peab olema täpselt kolm argumenti: veebilehe aadress, otsitav algusmärgis ja otsitav lõpumärgis. Kõik argumendid on sõned. Funktsioon peab tagastama veebilehel märgiste vahel peituva saladuse. Kui saladust veebilehel ei peitu, peab funktsioon tagastama tühisõne.
Esita programmid
Esita ülesannete lahendused Moodle'i kaudu failidena kodu1.py, kodu2.py ja kodu3.py.
Nõuanne
Pööra tähelepanu koodi selgusele. Programm on mõeldud inimesele lugemiseks ja ainult muuseas arvutile täitmiseks.
Vestlusagent
Kui vajad ülesannete lahendamisel abi, siis võid proovida TÜ keeletehnoloogia õppetoolis loodavat uut eksperimentaalset vestlusagenti, kes püüab sind programmeerimise teemadel aidata. Katseta julgelt! Esialgu on tema tarkus küll piiratud, aga aja jooksul ta loodetavasti areneb ning tema haare laieneb. Kui vestlusagent küsimusele vastata ei oska, küsi julgelt Zulipis. :)