Python: funkcije i liste — informatika za 6. razred

Gradivo za 6. razred

Kada se isti račun, npr. obim pravougaonika, javlja na više mesta, zapiše se jednom kao funkcija i poziva po potrebi. Kada program treba da pamti mnogo vrednosti, npr. ocene svih učenika u odeljenju, čuva ih u listi. U 6. razredu se u Pythonu uče ugrađene funkcije, pisanje sopstvenih funkcija i rad sa listama: pravljenje, dodavanje elemenata, prolazak petljom, zbir, najveći i najmanji element.

Na ovoj strani ukratko obnavljaš gradivo, a zatim vežbaš u kvizu. Tamo određuješ šta vraća poziv funkcije, prepoznaješ ime, parametre i return, pratiš kako lista raste posle append i dopunjuješ red koji nedostaje u funkciji. Programe pišeš i pokrećeš na času; kviz vežba da ih čitaš i predviđaš rezultat.

Učitavanje lokalnog napretka...

Vežbaj funkcije i liste →

Zašto vežbati funkcije i liste na Spremku

Ovde se lako pomešaju return i print, parametar i vrednost pri pozivu, definicija i poziv, min i max, len liste i len niske, indeks i redni broj elementa. U kvizu određuješ šta vraćaju pozivi ugrađenih i sopstvenih funkcija, prepoznaješ delove definicije, pratiš listu posle više append i dopunjuješ red koji funkciji nedostaje. Primeri su u Pythonu, koji koristi većina škola. Kviz prati gradivo informatike za 6. razred, uz svaki odgovor dobijaš objašnjenje na srpskom, a besplatan je i bez registracije.

Gradivo i objašnjenje

Ugrađene funkcije abs, min, max i len

Python ima ugrađene funkcije koje ne treba definisati. Funkcija abs daje apsolutnu vrednost broja, njegovu udaljenost od nule, pa je abs(-8) jednako 8. Rastojanje dva broja na brojevnoj pravoj, bez obzira na redosled, daje abs(a - b): i abs(2 - 9) i abs(9 - 2) su 7. Funkcija max vraća najveći, a min najmanji od zadatih brojeva, i to od dva, tri ili više njih: max(4, 11, 7) je 11. Funkcija len daje dužinu niske, a za listu broj njenih elemenata. Funkcije se mogu ugnježdavati, pa se prvo računa unutrašnja: u max(abs(-6), 2) prvo abs daje 6, a zatim max(6, 2) daje 6.

Sopstvene funkcije: def, parametri i return

Definicija funkcije počinje rečju def, zatim dolaze ime, zagrade sa parametrima i dvotačka, npr. def obim(a, b):, a telo funkcije se uvlači. Parametri pri pozivu dobijaju zadate vrednosti po redu: u pozivu obim(5, 3) a dobija 5, a b dobija 3. Naredba return vraća vrednost na mesto poziva i završava funkciju, pa se vraćena vrednost može upisati u promenljivu ili ispisati sa print. Bez return funkcija ne vraća izračunati rezultat. Definicija sama ništa ne radi: telo se izvrši tek pri pozivu, svaki put kada se funkcija pozove, a definicija mora da bude iznad poziva. Rastavljanje većeg zadatka na funkcije (potprograme) čini program preglednijim.

Liste: indeks, append, sum, min i max

Lista čuva više vrednosti pod jednim imenom i piše se u uglastim zagradama, npr. ocene = [5, 3, 4]; može da bude i prazna, []. Kao kod niski, indeksi počinju od 0: ocene[0] je prvi element, a ocene[-1] poslednji. Naredba ocene.append(5) dodaje element na kraj liste, pa lista ima jedan element više. Petlja for x in ocene: prolazi kroz sve elemente redom. Za listu len daje broj elemenata, sum zbir, a min i max najmanji i najveći element. Prosek je sum(lista) / len(lista), a pošto / uvek daje decimalni broj, prosek liste [4, 5, 3, 4] ispisuje se kao 4.0. Lista sa 5 elemenata nema indeks 5, to je greška.

Ključni pojmovi

Parametar

Ime u zagradi posle imena funkcije, koje pri pozivu dobija zadatu vrednost, npr. a i b u obim(a, b).

Naredba return

Vraća vrednost na mesto poziva funkcije i završava funkciju; sama ništa ne ispisuje.

append

Dodaje novi element na kraj liste, npr. ocene.append(5).

Rastojanje abs(a - b)

Udaljenost dva broja na brojevnoj pravoj, koja je ista bez obzira na to koji je broj veći.

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

Koja je razlika između return i print?

print ispisuje vrednost na ekran. return vraća vrednost na mesto gde je funkcija pozvana, pa se sa njom može dalje računati, npr. obim(5, 3) + 1. Funkcija koja računa rezultat treba da ga vrati sa return.

Kako se u Pythonu računa prosek elemenata liste?

Kao sum(lista) / len(lista): zbir elemenata podeljen njihovim brojem. Rezultat je decimalni broj, jer / uvek daje decimalni broj, pa se za listu [4, 5, 3, 4] ispisuje 4.0.

Zašto se pravi sopstvena funkcija ako može da se napiše i bez nje?

Funkcija se napiše jednom, a poziva koliko god puta zatreba, sa različitim vrednostima. Veći zadatak se tako rastavlja na manje celine, potprograme, pa je program kraći, pregledniji i lakše se proverava.

Pokreni kviz →