Функције

У прошлој глави показали смо пуно малих програма за рад са речником. Њих можемо објединити у један програм користећи функције.

Функција је именована група наредби, која је издвојена у засебну целину.

Током курса наилазили смо на разне функције, на пример функцијe print и len:

Када користимо функцију print у заградама наводимо шта желимо да се испише. Слично за функцију len наводимо колекцију чију дужину желимо да сазнамо, односно у оба случаја наводимо над чиме желимо да извршимо ту функцију. То називамо аргумент функције.

Функције без повратне вредности

У програмском језику Пајтон можемо сами правити своје функције које желимо да користимо. На пример, функцију која за дато име исписује поздрав тој особи можемо написати на следећи начин:

Када покренеш претходни програм приметићеш да се ништа неће десити. То је и очекивано јер смо ми дефинисали нову функцију али је нисмо ниједном позвали, односно употребили:

Видимо на примеру да је линија print("Zdravo,", ime, "👋") увучена у односу на def pozdrav(ime):. Уколико функција има више линија, оне морају бити поравнате.

Имајући то у виду, размисли шта исписује следећи програм:

def pozdrav(ime):
    print("Zdravo,", ime, "👋")
    print("🦊")
print("🐻")

pozdrav("Ana")
pozdrav("Mila")
print("🐺")
pozdrav("Sofija")

Којим редом се исписују животиње у претходном програму?

🦊🐻🦊🐻🦊🐻🐺

🦊🐻🦊🐻🐺🦊🐻

🦊🦊🦊🐻🐺

🐻🦊🦊🐺🦊

Функције са повратном вредношћу

Видели смо у ранијим примерима да за разлику од функције print, функција len ништа сама не исписује него само рачуна вредност дужине листе. Ту вредност ми даље можемо доделити некој променљивој или исписати и назива се повратна вредност функције.

Када желимо да функција коју напишемо има повратну вредност, користимо наредбу return и наводимо израз чију ће вредност вратити наша функција:

Наредба return може да се појави на више места у функцији, а обавезно се наводи на крају тела функције:

Функција са повратном вредношћу извршава се до прве наредбе return на коју током извршавања наилази.

Размисли шта исписује следећи програм:

Којим редом се исписују животиње у претходном програму?

🐮🐱🐮🐷🐥

🐮🐷🐥

🐮🐮🐷

🐮🐱🐮🐷

Пробај да направиш програм који се може користити за помоћ у куповини. Чува два речника, ценовник и корпа и у зависности од унете наредбе корисника може да:

  • дода артикал и његову цену у ценовник

  • испише артикле и цене у ценовнику

  • дода артикал и количину у корпу

  • испише садржај корпе

  • рачуна укупан износ корпе