Neka bude funkcionalno (stvaranje funkcija u Pythonu)

U Pythonu postoji veliki broj definiranih funkcija koje možemo koristiti pri kreiranju programskog koda. Spomenimo neke od njih: pow(a,b) (potenciranje), round(a,b) (zaokruživanje), trunc(a) (odbacivanje decimalnog dijela broja), max(L) (najveći element liste), min(L) (najmanji element liste), sum(L) (zbrajanje elemenata liste) itd. Funkcije u Pythonu su unaprijed definirani dijelovi programskog koda kojeg pozivamo i ponavljamo nekoliko puta.

Što ako želimo dio programskog koda ponoviti nekoliko puta (pozvati nekoliko puta), a ne postoji takva funkcija u Pythonu? Napisat ćemo svoju funkciju.

Za početak pogledajmo primjer u kojem je „zgodno „ imati napisanu funkciju.

Učenici jednog razreda otišli su na izlet u Vukomeričke gorice. Nemaju internetsku vezu pa pokušavaju izmisliti neku igru da bi skratili vrijeme. Budući da su temperature visoke sport ne dolazi u obzir.  Osmislili su igru u kojoj na 100 kartica napisali brojeve (brojevi na karticama mogu se ponavljati). Svaki učenik izvlači jednak broj kartica (bez gledanja zapisanog broja na kartici). Pobjednik je onaj učenik koji ima najveći zbroj izvučenih brojeva. U razredu je 20 učenika, što znači da svaki učenik izvlači pet kartica.

Ako želimo napisati programski kod kojim se računa zbroj brojeva za pojedinog učenika trebamo uvesti stotinu varijabli (za svaku karticu) i varijable za zbroj (dvadeset varijabli).

Slika 1 Dio programskog koda – zbroj brojeva na karticama za tri učenika

Ovo je dio programskog koda u kojem se računa zbroj na karticama za tri učenika. Ako je na izlet išlo manje učenika onda je broj kartica koje izvuče jedan učenik veći te ne možemo koristiti ovaj algoritam.

Pojedini dijelovi koda se ponavljaju pa zapis algoritma možemo skratiti. Koristit ćemo petlju for jer je broj ponavljanja unaprijed poznat.

Slika 2 Računanje zbroja na karticama za tri učenika

Poboljšajmo programski kod tako da ga možemo koristiti neovisno o broju učenika koji sudjeluju u igri. Broj kartica koje izvlači pojedini učenik izračunat ćemo na način da ćemo broj 100 cjelobrojno podijeliti s brojem učenika (100//n).

Slika 3 Računanje zbroja na karticama za različit broj učenika (zbroj za tri učenika)

I dalje možemo primijetiti da se pojedini dijelovi koda ponavljaju pa ćemo na ovom mjestu naučiti kako napisati funkciju koju ćemo pozvati nekoliko puta. Ovdje ćemo kao primjer napisati funkciju koja zbraja dva broja:

Sintaksa za kreiranje funkcija je sljedeća:

Slika na kojoj se prikazuje tekst, Font, snimka zaslona, broj

Sadržaj generiran umjetnom inteligencijom može biti netočan.brojevi koje zbrajamo (x i y) unose se u glavnom dijelu programarezultat funkcije (zb) vraća se u glavni program naredbom return
brojevi koje zbrajamo unose se u funkciji (a i b)rezultat funkcije vraća se u glavni program naredbom return
brojevi koje zbrajamo (a,b) unose se u funkcijirezultat zbrajanja ispisuje se u  funkciji

Slika 4 Načini definiranja funkcije, unosa podataka i vraćanja rezultata

Zapišimo sad funkciju za našu igru koju ćemo koristiti za izračun zbroja brojeva koji se izvlače. U glavnom dijelu programa

Slika 5 Programski kod za računanje zbroja na karticama za sve učenike

Ovdje vidimo koliko je programski kod kraći, a pomoću njega možemo izračunati rezultate za sve učenike. U prethodnim primjerima računali smo rezultat samo za tri učenika.

Na sličan način možemo sami smisliti razne funkcije koje ćemo u programu pozivati nekoliko puta.

                                                                                                       Gordana Sekulić-Štivčević