4: Функције


Да бисте користили неку функцију, увек напишете њено име, а потом неке аргументе у заградама (). Онда функција обави неку акцију у зависности од својих аргумената. Када функција има више аргумената, раздвајајте их зарезима (,). На пример, можете дати више аргумената функцији print; одштампаће их све редом, са размацима између. Показаћемо то у примеру испод.

Пример: Штампање нека три броја

Додатни размаци у овом програму нису имали утицаја на резултат. Додатни размаци не утичу на програм  и у већини других ситуација,. Ипак, пазите на додатни размак на почетку реда, који се назива indenting тј. увлачење, јер он може да изазове грешке.

 

Функција такође може да врати вредност (као резултат). На пример, функција max() (скраћено од максимума) враћа највећи од својих аргумената, који морају бити бројеви.

Пример: функције
Покушајте да предвидите резултат наредног програма, пре него што га покренете.

 

Функција max има 'пријатеља' који се слично понаша: функција min враћа минимум (најмањи) од својих аргумената.

Вежба вишеструког избора: Min и Маx I
Који је резултат наредног програма?
x = 13
y = 7
a = max(x+y, x*2)
b = min(x, y)
print(a,b)
Тачно!

 

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

Вежба кратког одговроа: Min и Max II
Који је резултат наредног програма?
x = min(max(13, 7), 9)
print(x)

Тачно!

 

Честе грешке

Ако позовете функцију која нема довољно аргумената, или има превише аргумената, јавља се грешка. На пример, max захтева бар један аргумент:

Пример: Пример
Позивање max са премало аргумената.

Пример: Пример
Притисните Run program и погледајте грешку која ће се десити.

Python каже да постоји синтаксна грешка, што значи да не може да разуме шта покушавате да урадите. Ипак, ред veci=max(3,4) је исправан. Проблем у ствари допире из претходног реда: заборавили смо да додамо затворену заграду ) после manji=min(14,99 и Python je почео да тражи ) у наредном реду. Зато проверите редове пре и после оног који Python предлаже, ако не можете да нађете грешку у програму.

 

Вежба

Вежба кодирања: Пут

Камион превози терет од Крагујевца до Београда. Пут од Крагујевца до Београда је повезан са неколико мостова. Постоје различита ограничења тежине коју сваки мост може да поднесе.

Постоји један пут између та два града. Пут има три моста са ограничењима тежине а,b,c, као што се види на слици испод:

Capture


Да би се превезао, камион треба прво да вози преко дела моста са ограничењем тежине а, а онда оног са ограничењем тежине b, а онда оног са ограничењем тежине c. Ваш камион ће да бућне у реку ако пређете било које од ова три ограничења. Напишите програм који штампа максималну тежину која може да се пренесе овим путем. Ограничења a, b и c су већ дефинисана, не морају се уносити.

Вежба кодирања: Два пута
Постоји и други пут између Крагујевца и Београда, преко Тополе и Младеновца, који има два моста, први са ограничењем тежине d и други са ограничењем тежине e, као што је и нацртано испод.

 Capture2


Камион може да крене било којим путем. Напишите програм који штампа максималну тежину која се може пренети између два града. Претпоставимо да су променљиве које садрже ограничења тежине моста a,b,c,d и e већ дефинисане, не морају се уносити.