230990IFIFB.DT Oled teinud korralikud funktsioonid ja tulemus õige. Siiski üks listifunktsioon on sisse lipsanud, mida ei olnud ettenähtud kasutada. Programmis on üks kontroll, mis ei tööta nii, nagu loodad: kesk_nimi != None Kas testisid? 220442MLMB.DT Koodi käivitades saan Division by Zero veateate. Koodis endas mitmed segadused. Näiteks loed kõigeüpealt ühe korra andmed falist listidesse. Seejärel alustad uuesti faili lugemise tsüklit, milles on omakorda faili lugemise tsükkel. Kui fail on korra loetud ei saa teda niisama lihtsalt uuesti lugema hakata (ja eksami reeglite kohaselt ei ole see ka lubatud). 230756MLMB.DT Korras. Tubli töö!! 230621IFIFB.DT Jätkuvalt on soovitus teisendada andmed kohe failist lugemisel listidesse pannes. Teeb hilisema koodi lihtsamaks. Tabeli tegemise oled enda jaoks tarbetult keeruliseks teinud. Sobiv oleks olnud kasutada stringi formaatimise võimalust print-lauses. Ja mõne listi oleks võinud ka kokku hoida. 2. osa: siin peaks kontrollima ka erinevuse ülemist piiri, sest tüdrukute andmed võivad rohkem erineda kui andmefailis 230783IFIFB.DT 220813MLMB.DT Ise tehtud funktsioonid on mõistlik kasutusse võtta siis, kui nende toimimine on täiesti selge. Antud juhul ilmselt ei ole. Sest pea kõigis funktsioonides on return pandud tsükli sisse. Aga return käsk katkestab kohe tsükli täitmise. Ja et funktsioonid tööle hakkaksid, selleks on vaja nad välja kutsuda. 238157FAY 1. ja 2. osa Korras. 3. osa: puuduvad sõnad poiss / tüdruk. 230965IFIFB.DT Miks teed listi heade, halbade ja neutraalsete märkimiseks? Seda listi ei kasutata. Samuti pole ka vajadust kõigi vaatluskordade hoidmiseks eraldi listius. HLI saaks jooksval välja arvutada. 1. osa: tulemus tuleb õige. Terve listi trükkimine kvalfitseerub mustaks väljatrükiks. Miks teed if-lause, kus if-osa tegelikult midagi ei tee? 230440MLMB.DT Kommentaare pole. 230827MLMB.DT HLI (protsendi!) leidmiseks täisarvulise jagamise kasutamine on väga halb mõte. See mõjutab tulemust. 1. osa: keskmise leidmisel piirdud vaid heade laste (HLI>=60) HLIde liitmisega, kuid keskmise jaoks jagad kõiki poiste / tüdrukute arvuga. Seetõttu tulevad tulemused valed. 2. osa: korras. 3. osa: ei tule teadet, kui otsitavad lapsed puuduvad. 230806IFIFB.DT Andmed on failist vales järjekorras loetud. Liigsed listid – milleks vaatlused, kvoodid ja jõuluvana_lemmikud? 1. osa: keskmine leitud õigesti. 3. osa: tingimus valesti seatud, puuduvad sõnad poiss / tüdruk, liigne veerg. Koos lemmikute listi kirjutamisega on andmed omavahel segi läinud ja andmed ei tule tabelisse omavahelises vastavuses. 220989MLMB.DT 1. osa: aritmeetilise keskmise leimiseks tuleb kõigepealt arvud (HLId) liita see järel arvuga jagada. Tüdrukute ja poiste eraldi tulemuste leidmiseks tuleb eraldi summad leida ja samuti ka eraldi jagada poiste summa poiste arvuga ja tüdrukute summa tüdrukute arvuga. Selle osa else-osa on kirjutatud for-tsükli jaoks, mitte if-lause jaoks. 2. osa: kommide srvu leimine ei ole õnnestunud – selleks tuleks loendada, kui palju on häid lapsi ja samuti arvutada, mitu päeva on 24. detsembrilini. 3. osa: völjatrüki tingimus ei ole õige. 230584IFIFB.DT 1. ja 2. osa Korras. 3. osa: puuduvad sõnad poiss / tüdruk. 220675IFIFB.DT Teisenda andmed listidesse pannes. 1. osa: ei ole järgitud eksami piiranguid (max() kasutamine) ja seda nii ebaõnnestunult, et tuleb vale tulemus. Erinevad index-errorid tulevad sellest, et kirjutad andmeid osade kaupa erinevatesse listidesse, kuid listi töötlemisel ei arvesta sellega, et seal listis ei ole kõiki andmeid. 3. osa: ka siit tuleb indexError samal põhjusel. Esiteks tasub mõelda, kas kõiki neid lisaliste on tegelikult vaja (reegel – ära raiska mälu) ja kui täesti on, siis tuleb arvestada listi õige pikkusega. Muutujatre nimedes on ka suur puder ja kapsed – on eestikeelsedi, inglisekeelseid, läbivate suurtähtedega nimesid. Viimane on (eriti pika sõna korral) väga halb komme / halb lugeda. 220976MLMB.DT Sõnastik (dictionary) on ka tore ja vajalik andmetüüp. Aga ülesande lahendamisel tuli näidata listi kasutamise oskust, nagu eksami nõuetes kirjas on. HLI-d ei tohiks muuta täisarvuks. Väga halb siin juures on täisarvuks tegemine int() funktsiooniga. Kasutades funktsioone, tuleks seda teha korrektselt. Näiteks saadad küll funktsiooni read_laped_data() faili nime, kuid ei kasuta seda tegelikult faili avamisel. 1. osa: listi fnktsioonde kasutus oli eksami reeglite kohaselt piiratud. Antud juhul ei anna min() ka vastust! 2. osa: siit võiks õige tulemus tulla. 3. osa – tabel jääb tühjaks, ehkki andmed on olemas. 230789IFIFB.DT Keskmised tuleks väljatrükkides ümardada. 1. osa: korras. 2. osa: korras. 3. osa: Puuduvad sõnad poiss / tüdruk. 230733MLMB.DT 1. osa: korras. 2. osa: korras. 3. osa: puudub poiss / tüdruk ja HLId oleks ka siin võinud ümardada. 220515IFIFB.DT Mõni list on liigne – nt vaatluskordade arve poleks küll vaja eraldi listi panna. 1. osa: Miks selline algväärtustamine: halvim=None? Minul arvutis olev Pythoni versioon annab selle peale andmetüüpide sobimatuse vea. Kui see olukord parandada, ei tule siiski õiget vastust. 2. osa: loendada oli vaja noormaid ja vanemaid eraldi. 3. osa: korras, kuid puuduvate andmete korral ei tule teadet. 230801IFIFB.DT Mooduleid ei impordita ilma vajaduseta. Milleks import os? Programmi käivitamisel saan veateate IndexError: list index out of range 1. osa: Ülesande kohaselt pidi päkapikk sisestama vanuse. 230451MLMB.DT Korras. Tubli töö!! 230545IFIFB.DT Andmed võiks teisendada kohe listidesse pannes. Uusi liste heade ja halbade laspe nimedega pole vaja. 1. osa: korras. 2. osa: erinevus võib olla ka suuremas suunas (on paremaid tüdrukuid). 3. osa: tabelis on kõik lapsed, sõnad poiss ja tüdruk välja trükkimata (ehkki tegid listid keskmiste laste andmetega). Nime veerule oleks sobinud suurem väljalaius. 231253IFIFB.DT Hea mõte oli panna listi kohe vanused ja mitte sünniaastad. 1. osa korras. 2. osa: korras. 3. osa: puuduvad sõnad poiss / tüdruk, 230705MLMB.DT Mõistlik on andmed listidesse pannes kohe teisendada. 1. osa: korras. 2. osa: korras. 3. osa: väljundi formaatimine (väljalaiuste kasutamine) oleks andnud tabelimoodi veerud. 221043IFIFB.DT Protsendi teisendamine täisarvuks HLI leidmisel ei ole hea mõte. Eriti halb mõte on selleks kasutada funktsiooni int() 1. osa: int(“0”) asemel 0. Suurim väärtus on õigesti leitud. 2. osa: tuleks kontrollida ka ülemist piiri, sest andmestik võib olla sootuks erinev. 3. osa: puudub väljundi formaatimine. 230710MLMB.DT Hea mõte oli panna listi kohe vanused ja mitte sünniaastad. Samas on tekkinud ka mõni liigne list (vaatluskordi poleks küll vaja eraldi listi panna, saab arvutada kohe HLI) 1. osa korras. 2. osa: korras. 3. osa: puuduvad sõnad poiss / tüdruk, kui otsitavaid pole eo tule asjakohast teadet. 231005MLMB.DT 1. osa: korras. Teised osad – kui üleanne ei olnud mõistetav, siis palusin üle küsida. 230641IFIFB.DT HLId ei ole vaja täisarvuks ümardada. Õnneks oled kõigepealt kasutanud round()-i ja seejärel int()-i. Aga soovitan veidi nende funktsioonide käitumiste üle järgi mõelda. 1. osa: korras. 2. osa: teksti lugemine jäi poolikuks – vaja oli sisestada kommide toomise alguskuupäev ja rehkendada sealt kuni 24.dets. 3. osa: puuduvad sõnad poiss/tüdruk. 230860MLMB.DT HLI arvutamist oli ülesandes kirjeldatud kui protsendi leidmist. Hea, et seda on vähemalt 3. osa väljatrükis arvestatud. On liigseid liste, näiteks poisti ja tüdrukute HLId, poiste ja tüdrukute indeksid jne. 1. osa: keskmine leitud. 2. osa: korras. 3. osa: kasutatud mittelubatud listimeetodit index(). Soovitud laste valimise tingimus on läinud liiga keeruliseks ning tulemus ei tule õige. Puudub ka tabelilaadne väljatrükk. Muide, abs()-i jaoks ei ole tegelikult math moodulit vaja. 230845MLMB.DT Kommentaare pole. 230940IFIFB.DT Milleks on vaja teha lisaks liste head lastega, halbade lastega? See ei ole ülesande püstitusega mitte kuidagi seotud. Arusaamatu esimene väljatrükk. 3. osa: trükkimine on õnnestunud, puuduvad sõnad poiss /tüdruk. 1. osa: miks leiad uuesti HLI, kui see on juba andmeid sisselugedes tehtud ja listi pandud? Leida oli vaja miinimum teatud vanuses. 230773IFIFB.DT Ridade arv tuleks kirjutada faili, mitte programmi. Funktsioonide lisamine oma programmi eeldab teatud reeglite järgimist koodi organiseerimisel (funktsioonid eraldi, siis peaprogramm). Sellest ei ole kinnipeetud. 1. osa: miinimumi leidmisel on kasutatud lubamatuid funktsioone / meetodeid. 2. osa: Korratud miinimumil leidmiseks sama võtet. 3. osa: ei tule teadet, kui otsitavad puuduvad. Väljund ei ole ka tabeli kujuline. 230662IFIFB.DT 1. osa: listi funktsioonide kasutamisel olid piirangud (max()!). Ja teda kasutades ei ole mõistlik seda teha tsükli sees korduvalt. Lisaks ei tule nimi õige: trükid viimase poisi nime. 3. osa: tabel korras, kuid kui vasteid pole, et tule vajalikku teadet: muutuja leitud ei ole päris õigesti kasutuses. Puudvafd ka sõnad poiss tüdruk. 230885IFIFB.DT Heade ja halbade laste HLIde eraldi listidesse ei ole millegagi põhjendatud. 1. osa: korras. 2. osa: tuli uurida erinevust võrreldes parima poisiga. Kui tekst polnud arusaadav, oli võimalus küsida. Lahenduses vaadatakse lihtsalt seda, kelle HLI on arvust suurem. 3. osa: tabeli tegemiseks saab kasutada välja laiuste määramist. 221036MLBB.LT 1. ja 2. osa korras. 3. osa: tabelisse lisatavate tingimus on valest / poolikult välja loetud. Väljastada oli vaja ka need kelle HLI keskmisest vähemalt soovitud arvu jagu väiksem on. 230592IFIFB.DT HLI teisendamine täisarvuks ei ole hea mõte. Väga halb on aga mõte teha seda int()-funktsiooniga. 1. osa: korras. 2. osa: korras. 3. osa: kui otsitavad puuduvad, ei tule teadet. Veergude moodustamiseks oli hea võta väljundi formaatimine + väljalaiused. 230992IFIFB.DT Muutujate nimedes on segapudru inglise ja eesti keelest. Funktsioone kasutades tuleb kogu programm organiseerida korralikult, mis tähendab et funktsioonide koodid on faili alguses ja sellele järgneb niinimetatud peaprogramm. Tsüklimuuutjaks sobib I hästi siis, kui ta on kasutatav indeksiks. Kui ta aga sisaldab suuremat kirjet, peaks nimi olema sisukam. Kõigi osade tulemused õiged. 3. osa: veergude saamise võlusõnadeks on väljundi formaatimine ja väljalaiused. 230498IFIFB.DT 1. osa: korras. 2. osa: ressursside säästmise eesmärgil oleks lihtsalt võinud ühe tsükliga head lapsed kokku lugeda, arvutada, mitu kuupäeva vahemikku jääb ning siis korrutada :) Oleks saanud ühe tsükliga hakkama. 3. osa: korras. 230543MLMB.DT 1. ja 2. osa Korras. 3. osa: puuduvad sõnad poiss / tüdruk. Korralikud veerud saab väljundi formaatimisega. Hea, et oled ebavajalikud listid lõpuks siiski tegemata jätnud. 238253FAY 1. osas on probleemid treppimise ehk taanetega. Kui korda teha, siis ka õiget tulemust ei tule. Üks probleemidest on, et arvutad küll ühes tsüklis järjest kõik HLI-d välja, aga lõpuks jääb HLI muutujasse viimane väärtus, sest see on tavaline muutuja (mitte list). 3. osa tsüklis avaldusb sama HLI probleem, aga samuti ka see, et osa lauseid, mis peaks, ei ole tsükli sees. Tsükli sees on vaid vanuse arvutamine. 230589IFIFB.DT Programmi kirjutamisel olid kehtestatud teatud piirangud funktsioonide kasutamise osas, nendest on enumerate() näol üle astutud. 1. osa: tulemus õige. 2. osa: tuleks igaks juhuks arvestada ka ülemist piiri, sest poiste parim võib tüdrukute omadest rohkem erineda või jõuluvana arv väga väike olla. 3. osa: puudub vormindatud väljatrükk 220866IFIFB.DT Mõne täiendava listi vajalikkuses kahtlen – nt list, kus vaatluste arvud või siis kirjas “hea”, “halb”, … Ja et tegemist üksteist välistavate võimalustega, siis if .. else . 1. osa: leiad viimase küsitud vanuses kodaniku. Ehk siis tulemus vale. Oled segamini ajanud muutujad parim ja halvim_indeks. 2. osa: kood õige. 3. osa: tulemus õige, aga jälle milleks enne listid teha, kui võiks kohe tulemuse välja trükkida? 220947MLMB.DT Protsendi teisendamine täisarvuks HLI leidmisel on halb mõte. Eriti halb mõte on selleks kasutada funktsiooni int() 1. osa: suurim väärtus on õigesti leitud. 2. osa: tuleks kontrollida ülemist piiri ja alumist piiri, selle asemel oled asunud järgmist maksmumi leidma. Arvu teada saamiseks ei ole vaja andmeid listi panna ja siis listi pikkust küsida. 3. osa: ei ole trükitud poiss / tüdruk, ei tule teadet, kui andmed puuduvad. 230538IFIFB.DT HLIde arvutus ei vasta ülesande tekstis kirjeldatule. 1. osa: Kuidas peaks algväärtustama miinimumi? 2. osa: see võiks töötada küll. 3. osa: puuduvad veerud, sõnad poiss / tüdruk ja teade, kui otsitavad puuduvad. 230599MLMB.DT Korras. Tubli töö!! 230694IFIFB.DT Protsendi teisendamine täisarvuks HLI leidmisel on halb mõte. Eriti halb mõte on selleks kasutada funktsiooni int() 1. osa tulemus õige, hea, et oled mõlemad võrdsed üles leidnud. 2. osa: siin tuleks kontrollida ka ülemist piiri, sest jõuluvana arv võib olla väike ja/või mõned tüdrukud parimast poisist palju paremad (mida küll nendes andmetes ei esinenud). 3. osa: poiss / tüdruk sõnadega. 230424IFIFB.DT Tulevad vead. Esimene viga on seotud muutujanimede sassi ajamisega protsentide summa leidmisel. Kui see viga parandada, ilmneb indexerror. Miks teed: mitu = (len(nimed))*2? Kui loetletud vigade põhjused likvideerida, siis tegelikult 1. ja 2. osa töötaksid. Failistruktuuri kohta ei ole ka korralikult loetud – mis arv mida tähendab. 232348IFIFB.DT Ülesande teksti lugemine on jäänud poolikuks. HLI ei ole kindlasti kõigi vaatluskordade arv! Programmis on kasutatud arusaamatuid konstant (109.5, 219). 1. osa: õige HLI arvutuse korral võiks tulla siit õige vastus. 3. osa: et midagi väljundisse jõuaks on vaj atsüklit, mis kõik andmed läbi vaatab.