Kuuenda nädala kontrollülesanded
Enne 6. praktikumi tuleb esitada kolme kohustusliku ülesande lahendused. Lahendused tuleb esitada Lahenduses, kus need kontrollitakse automaatselt.
Kontrollülesanne 6.1. Teksti korrastamine
Mati trükkis tekstid klaviatuuril, kus ei olnud täpitähti. Ta kirjutas ö asemel 8, ä asemel 2, õ asemel 6 ja ü asemel y. Nüüd on tal vaja programmi, mis teksti korda teeks ehk asendussümbolid täpitähtedega asendaks. Selles ülesandes eeldame, et täpitähti lausete alguses ei ole ehk asendada on vaja ainult väiketähed.
Näide faili võimalikust sisust
K6ndisin yleeile 6htul m88da teed ja 2kki n2gin p6tra. P6der vaatas mind t2helepanelikult.
Kirjutada programm, mis
- küsib kasutajalt failinime;
- loeb failist teksti;
- teeb tekstis järgmised asendused:
- 8 → ö
- 2 → ä
- 6 → õ
- y → ü
- väljastab täpitähtedega teksti ekraanile.
Näide programmi tööst:
>>> %Run lahendus.py
Sisesta failinimi: tekst.txt
Kõndisin üleeile õhtul mööda teed ja äkki nägin põtra.
Põder vaatas mind tähelepanelikult.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.
Kõik programmid, mida kasutame, jätavad kuhugi maha endast logi ehk arvuti/programmi tegevuste päeviku. Kristiinal on hilisemaks veebiarenduseks vaja välja töötada üks lihtsakoeline logiprogramm, mille abil saab logisse kirjutada ja logi sissekandeid lugeda. Aitame Kristiinat järgmise programmiga.
Näidisfaili esialgne sisu:
2022-02-24 16:03:03.099725: Testime, kas programm töötab
NB! Võib eeldada, et sissekande lõpus on reavahetus.
Koostada programm, mis
- küsib kasutajalt logifaili nime;
- küsib kasutajalt, kas soovitakse logisse kirjutada või logi sissekandeid lugeda. Logisse kirjutamiseks tuleb kasutajal sisestada
"kirjuta"
, logist lugemiseks tuleb sisestada"loe"
; - juhul, kui kasutaja soovib logisse kirjutada, küsib kasutajalt informatsiooni, mida soovitakse logisse kirjutada. Saadud informatsioon salvestatakse koos kuupäeva ja kellaajaga kujul
"2022-02-24 16:03:03.099725: <Sissekanne>"
logifaili lõppu eraldi reale. Kui faili ei eksisteeri, siis tuleb see luua. Kui aga fail juba eksisteerib, siis ei tohi selle faili olemasolevast sisust midagi üle kirjutada. - juhul, kui kasutaja soovib logi lugeda, väljastab ekraanile logifaili sisu.
Praeguse kuupäeva ja kellaaja saamisel aitab järgmine programmilõik.
from datetime import datetime kuupäev_kellaeg = datetime.today() print("Kuupäev ja kellaeg: " + str(kuupäev_kellaeg))
Näited programmi tööst:
>>> %Run lahendus.py
Sisesta logifaili nimi: logi.txt
Kas tahad logisse kirjutada(kirjuta) või logi lugeda(loe)? loe
2022-02-24 16:03:03.099725: Testime, kas programm töötab
>>> %Run lahendus.py
Sisesta logifaili nimi: logi.txt
Kas tahad logisse kirjutada(kirjuta) või logi lugeda(loe)? kirjuta
Sisesta logi sissekanne: Programm töötab kenasti
>>> %Run lahendus.py
Sisesta logifaili nimi: logi.txt
Kas tahad logisse kirjutada(kirjuta) või logi lugeda(loe)? loe
2022-02-24 16:03:03.099725: Testime, kas programm töötab
2022-02-24 16:05:14.472512: Programm töötab kenasti
Kontrollülesanne 6.3. Vestlusrobot
Koostada EasyGUI graafilise kasutajaliidesega lihtne vestlusroboti programm, mis
- laseb kasutajal sisestada küsimuse, millele ta soovib vastust (
enterbox
); - väljastab vestlusroboti vastuse (
msgbox
). Kui vestlusrobot ei saanud küsimusest aru, siis robot annab sellest teada.
Vestlusrobot peab oskama vastata vähemalt kahele küsimusele. Küsimused, millele robot vastata oskab, tuleb ise välja mõelda.
Selleks, et vestlusrobot saaks paremini küsimusest aru, võib kontrollida mõne märksõna leidumist küsimuses. Näiteks kui kasutaja küsib "Milline on tänane ilm?", siis kontrollitakse "ilm" sõna sisaldumist küsimuses ja vestlusrobot vastab küsimusele tuginedes "ilm" sõnale. Sõne sisaldumist teises sõnes saab kontrollida in
abil. Näiteks "saia" in "Aias sadas saia."
→ True
.
Näide 1
Näide 2
Näide 3