Python: nizovi podataka — zbir, prosek, minimum i maksimum — informatika za 8. razred

Gradivo za 8. razred

Temperature tokom nedelje, ocene jednog učenika, poeni sa takmičenja — to su nizovi (serije) podataka. U 8. razredu se oni obrađuju programom, najčešće u Pythonu u Jupyter svesci: niz se čuva u listi, a program računa koliko ima podataka, njihov zbir, prosek, najmanju i najveću vrednost, ređa ih i izdvaja one koji ispunjavaju uslov.

Na ovoj strani ukratko obnavljaš gradivo, a zatim vežbaš u kvizu. Tamo čitaš kratke Python programe i određuješ šta ispisuju, dopunjuješ red koji nedostaje i nalaziš grešku, na primer kada se zbir poništava u svakom prolazu petlje. Programe pišeš i pokrećeš na času; kviz vežba da ih čitaš i predviđaš rezultat.

Učitavanje lokalnog napretka...

Vežbaj nizove u Pythonu →

Zašto vežbati nizove u Pythonu na Spremku

Ovde se lako pomešaju len i sum, sorted i sort, neopadajuće i nerastuće, / i //, filtriranje i preslikavanje. U kvizu čitaš kratke Python programe sa ocenama, temperaturama i poenima, određuješ šta ispisuju, dopunjuješ uslov ili red koji nedostaje i nalaziš zašto program daje pogrešan zbir ili maksimum. Primeri su u Pythonu, koji koristi većina škola. Kviz prati gradivo informatike za 8. razred, uz svaki odgovor dobijaš objašnjenje na srpskom, a besplatan je i bez registracije.

Gradivo i objašnjenje

Zašto analiza podataka programom

Za analizu podataka programiranjem postoje posebna okruženja, kao Jupyter (sa Pythonom), R i Octave. U Jupyter svesci kod se piše u ćelije, svaka ćelija može da se pokrene posebno, a rezultat se vidi odmah ispod nje, uz beleške između ćelija. Prednost programa nad ručnom obradom u tabeli je što je postupak zapisan: kada stignu novi podaci, isti program se samo ponovo pokrene, petljom se isti račun primeni na mnogo datoteka, a drugi mogu da pročitaju i provere svaki korak. Niz podataka u Pythonu čuva se u listi, u uglastim zagradama, npr. [18, 21, 19, 24]. Indeksi počinju od 0, pa je t[1] drugi element, a t[-1] poslednji.

Dužina, zbir, prosek, minimum, maksimum i procenat

Funkcija len daje broj elemenata liste, sum njihov zbir, a min i max najmanji i najveći element, bez obzira na to gde se nalaze. Prosek se računa kao sum(a) / len(a); operator / uvek daje decimalni broj, pa prosek 24 / 6 Python ispisuje kao 4.0. Za praznu listu len(a) je 0, pa takav račun prekida program greškom deljenja nulom. Procenat je deo podeljen celinom, puta 100: 20 položenih od 25 daje 20 / 25 * 100, tj. 80.0. Kod niski min daje onu koja je prva po abecedi, a ne najkraću. Brojevi uneti preko input stižu kao niske, pa ih pre računanja treba pretvoriti funkcijom int. Razlika max(a) - min(a) pokazuje raspon podataka.

Sortiranje, filtriranje, preslikavanje i frekvencija

sorted(a) vraća novu listu poređanu neopadajuće, a sorted(a, reverse=True) nerastuće; sama lista a se ne menja. Naredba a.sort() sortira baš listu a i ne vraća ništa, pa b = a.sort() u b upisuje None. Filtriranje zadržava samo elemente koji ispunjavaju uslov: petlja for prolazi kroz listu, if proverava uslov, a append dodaje element u novu listu. Preslikavanje menja svaki element, npr. centimetre u metre. Frekvencija je broj pojavljivanja nekog podatka, a dobija se brojačem koji se u petlji povećava za 1. Česta greška je da se početna vrednost, npr. zbir = 0 ili b = [], postavi unutar petlje: tada se u svakom prolazu poništava. Kada se traži maksimum petljom, početna vrednost treba da bude prvi element liste, a ne 0.

Ključni pojmovi

Niz (serija) podataka

Više podataka iste vrste, npr. dnevne temperature, sačuvanih u Pythonu kao lista.

Prosek sum(a) / len(a)

Zbir elemenata podeljen njihovim brojem, koji Python uvek daje kao decimalni broj.

sorted i sort

sorted(a) pravi novu sortiranu listu i ne dira a, a a.sort() sortira samu listu a.

Frekvencija

Broj pojavljivanja nekog podatka u nizu, npr. koliko puta se javlja ocena 5.

Najčešće greške

Pokreni kviz → Pogledaj povezane oblasti

Sledeći korak

Posle kratkog ponavljanja pokreni kviz, a zatim nastavi kroz povezane oblasti ili se vrati na razredni pregled.

Česta pitanja

Kako se u Pythonu računa prosek liste?

Kao sum(a) / len(a): zbir elemenata podeljen njihovim brojem. Rezultat je uvek decimalni broj, pa se za listu sa zbirom 18 i četiri elementa ispisuje 4.5. Lista ne sme da bude prazna, jer bi se delilo nulom.

Koja je razlika između sorted(a) i a.sort()?

sorted(a) pravi novu sortiranu listu, a lista a ostaje kakva je bila. a.sort() sortira samu listu a i ne vraća sortiranu listu. Obe naredbe ređaju neopadajuće, a uz reverse=True nerastuće.

Da li moram da znam Python napamet za ovaj kviz?

Ne. Kviz proverava da li razumeš kratke programe: šta ispisuju, koji red nedostaje i gde je greška. Programi su kratki i koriste naredbe iz gradiva, kao što su liste, len, sum, min, max, sorted, petlja for i naredba if.

Pokreni kviz →