Python: Funkcije, primeri

U uvodnom textu smo ukratko objasnili sta su funkcije, kako se pisu i koriste. Sada cemo objasniti neke osobenosti funkcija kroz primere. Podsetite se kako se tehnicki radi sa .py fajlovima, jer ce vam biti od koristi i ovde.

Kao sto smo rekli, funkcije se sastoje od: imena, argumenata, neke akcije i rezultata. Medjutim, u praksi cete se sretati sa programima koji nemaju sve elemente standardne strukture. Evo i nekoliko primera.

1) Funkcije ne moraju da imaju akciju (radni deo). Akcije moze biti upisana u rezultat direktno.

Za ovaj primer iskoristicemo funkciju sab koju smo vec napisali. Ako ste je sacuvali, desni klik na sab.py i izaberite Edit with IDLE. Ako ne, otvorite IDLE i File > New Window za editor, pa upisite ili iskopirajte code.

Da se podsetimo sab.py izgleda ovako:

def sab(a,b):
    x = a+b
    return x

U ovom jednostavnom primeru radni deo je nepotreban. Nije potrebno napraviti dodatnu varijablu x za sabiranje, pa onda vracati tu varijablu. Moguce je u startu vratiti zbir.

Promenite vas sab.py code tako da izgleda ovako:

def sab(a,b):
    return a+b

Snimite ga sa File > Save i izvrsite sa Run > Run Module. U IDLE Shellu kucajte:

>>> sab(3,4)
7

Kao sto vidite funkcionalnost je ostala ista, iako je radni deo obrisan. Ili preciznije, prebacen u deo za rezultat. Sa ovim cete se vrlo cesto sretati.

2) Funkcije ne moraju da imaju rezultat/return. Ponekad je akcija sve sto zelite.

Napisite sledecu funkciju u IDLE Editoru, snimite je i izvrsite:

def sila(ime):
    print('May the Force be with you,',ime+'.')

Zatim je u Shellu pozovite sa argumentom vaseg imena. Npr. ako se zovete Dejan pisite:

>>> sila('Dejan')
May the Force be with you, Dejan.

Dobicete poznati pozdrav i StarWars-a. U ovom primeru funkcija nema rezultat koji vraca, vec samo izvrsava akciju na osnovu prosledjenog argumenta.

3) Funkcije ne moraju imati ni argumente.

Napisite sledecu funkciju u IDLE Editoru, snimite je i izvrsite:

def cikajova():
    print('Ucio ih, ucio\nOd srede do petka\n' \
          'Al\' se nisu odmakli\nDalje od pocetka.')

Pozovite je u IDLE Shellu jednostavno sa:

>>> cikajova()
Ucio ih, ucio
Od srede do petka
Al' se nisu odmakli
Dalje od pocetka.

Dobicete poznate stihove Cika Jove Zmaja. :) Ovde funkcija nema ni argumente ni rezultat, vec samo izvrsava neku akciju. Na ovaj nacin ih mozemo koristiti kao subrutine, sto donekle vazi i za drugi primer.

Napomena: Sve funkcije mogu stajati u istom .py fajlu. Ovo vazi i za glavni code koji ih pokrece.

4) A funkcije mogu biti i korisne.

Do sada smo pisali samo genericke funkcije sa ciljem da ilustrujemo neke osobine i mogucnosti. Sada cemo napisati jednu korisnu funkciju, temperaturni konverter izmedju celzijusa i farenhajta.

U IDLE Editoru napisite, snimite i izvrsite sledeci code:

def face(fa):
    return (fa-32)*5/9

def cefa(ce):
    return ce*9/5+32

Koristite cefa za konverziju C u F a face obrnuto. Npr.

>>> cefa(25)
77.0
>>> face(47)
8.333333333333334

Ovo vam moze biti korisno ako imate drugove u Americi ili na Bahamima. :)

Ovim zavrsavamo drugi deo serije textova u funkcijama. U sledecem textu cemo opisati dva trika koja ce vase funkcije uciniti produktivnijim.

Posted on 2014/01/19, in Programski jezici, Python. Bookmark the permalink. 3 Comments.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: