Histogramm
Ülesande püstitus
Kirjuta programm, mis loeb sisse aadressil http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_Dinov_020108_HeightsWeights oleva 200-realise tabeli andmed ja kuvab kasutajale kaks histogrammi: üks, mis näitab erinevate pikkuste jaotust ja teine, mis näitab erinevate kaalude jaotust. Pikkuste histogrammil peab olema 11 vahemikku (tulpa) ja kaalude histogrammil 9 vahemikku.
Histogramm võiks eelistatult olla graafiline (nt. Tkinteri, Turtle'i või Matplotlib'i abil tehtud), aga kui jääd sellega hätta, siis võib see olla ka tekstiline, näiteks midagi sellist:
# ### ##### ######### ############
või sellist:
* *** ** ********* ************ ***** ****** **** ** * *
Vihjed
Lehekülje sisu (HTML teksti) lugemine Pythoni sõnemuutujasse
from urllib.request import urlopen f = urlopen("http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_Dinov_020108_HeightsWeights") lehekülje_sisu = f.read().decode("UTF-8") f.close() print(lehekülje_sisu)
Andmete väljanoppimine HTML tekstist
Kuigi lehekülje sisu on HTML kood saab ülesandele läheneda ka tavaliste tekstitöötlusvahenditega (split
, strip
ja ülejäänud vanad sõbrad).
Vihje: Uuri HTML koodi ja ürita märgata, kas nendel ridadel, kus asuvad huvipakkuvad arvud, on mingi omadus, mille järgi sa suudaksid Pythoni koodis eristada huvitavad read igavatest ridadest.
Abifunktsioonid
Väldi copy-paste programmeerimist. Kuna on vaja teha kaks histogrammi, siis on soovitav teha selleks abifunktsioon, mis võtab argumentideks arvude listi ning soovitud vahemike arvu.
Boonus (1p lisapunktide reale)
Vii end end kurssi Pythoni HTML parsimise vahenditega (nt. https://www.crummy.com/software/BeautifulSoup/) ja loe andmed sisse HTML parseri abil.
Šmoonus (1p lisapunktide reale)
Vii end kurssi Matplotlib'iga, tee histogrammid selle abil ja lisaks tekita selle abil hajuvusdiagramm, mis demonstreerib pikkuste ja kaalude seost.