8.1. Пајтон подсетник - дефинисање функција¶
До сада смо користили неколико функција из библиотеке Пајгејм попут pg.Color()
и pg.draw
које су нам
омогућиле да бојимо елементе или да цртамо одређене облике. Међутим, понекад ће нам бити веома корисно да направимо
сопствене функције помоћу којих ћемо много лакше цртати одређене елементе.
Као што сигурно знаш, Пајтон омогућује корисницима да дефинишу своје функције. Дефиниција функције почиње речју
def
, након тога се наводи назив функције, затим у заградама улазни параметри функције и на крају првог реда
симбол :
(двотачка). Након те прве линије наводи се тело функције, које мора бити увучено. Велики број
функција у свом телу има наредбу return
, која означава које ће вредности функција вратити. Међутим, ми ћемо
у раду са Пајгејмом углавном користити функције које не враћају вредности, већ мењају стање програма. На пример,
када позовемо pg.draw.line
она нам неће вратити неку вредност већ
ће нацртати линију.
Уоквирен круг¶
Функције се позивају тако што се наведе њихов назив и у загради се наведу вредности аргумената. Погледајмо следећи пример где је дефинисана и позивана сопствена функција.
У горњем примеру дефинисали смо функцију којој се као аргументи унесу параметри за цртање неког круга и она тај круг
нацрта са црном кружницом дебљине 1 пиксел. Након тога позивамо ту функцију, тако да када покренемо програм,
он исцртава такав круг. Обрати пажњу на то како су наведени аргументи приликом дефинисања функције и како су исти ти
аргументи употребљени у телу функцијe и, на крају, како су ти аргументи наведени приликом позива функције.
Приликом дефинисања функције пишемо уопштен аргумент који ће своје конкретне вредности добити тек приликом
позива функције. Обрати пажњу како је приликом дефинисања функције тамо где треба да се нађу координате центра
остављено само centar
да би касније у позиву на то место био уписан уређен пар координата. Исто тако,
приликом дефинисања функције аргументи boja
и poluprecnik
налазе се на месту онога што ће приликом
позива функције добити конкретне вредности.
Уоквирен квадрат¶
Покушај сада да, угледајући се на претходни пример, допуниш следећи програм: требало би да напишеш функцију која ће цртати уоквирени квадрат и да је позовеш тако да нацрта три квадрата размакнута један од другог по педесет пиксела.
Уоквирен правоугаоник¶
Покушај сада да сâм/сâма напишеш функцију за цртање уоквиреног правоугаоника и да је затим позовеш три пута да би нацртао/нацртала три правоугаоника који се налазе један изнад другог и размак између њих је 50 пиксела.