W trakcie pisania kodu nie chcemy, by kod się powtarzał, bo wtedy będzie za długi i trudny do przeczytania. Właśnie po to powstały funkcje – programowanie w Pythonie byłoby bez nich znacznie trudniejsze, a na pewno bardziej żmudne! Pora wyjaśnić, skąd wzięły się funkcje i do czego służą, a ponadto czy warto uczyć się Pythona. Pokażemy Wam, w jaki sposób ułatwiają i przyspieszają pracę programistów.

Czym są funkcje?
Nazwa funkcje pochodzi z matematyki – inspirowana jest funkcjami matematycznymi, jednak funkcje w programowaniu są nieco czymś innym. Jak to wytłumaczyć? Najlepiej prosto i obrazowo. Funkcję możemy w najprostszy sposób porównać do małej maszynki, do której wkładamy pewne składniki na wejściu, a otrzymujemy coś innego na wyjściu. Tylko od nas zależy, co to będzie. W Pythonie możemy samodzielnie definiować takie „maszynki”, które pomagają nam budować, niczym z klocków, większą całość. Jednak, jest to prawie pewne, że ktoś przed nami miał już podobną potrzebę czy problem, dlatego też warto sprawdzić bogate biblioteki funkcji dostępne w Internecie.
Przyjmuje się, że nauka języka to w 10% nauka składni, a w 90% wiedza o bibliotekach, frameworkach i ekosystemie danego języka. Żaden programista nie pisze wszystkich funkcji ręcznie, tylko korzysta z gotowych. Nie dotyczy to oczywiście naszych studentów, ponieważ w celach edukacyjnych nie pozwalamy im początkowo korzystać z wbudowanych funkcji takich jak np. sortowanie, dzięki czemu uczą się je samodzielnie tworzyć. Oczywiście piszą funkcje w Pythonie tylko raz – potem mogą już z nich korzystać w swoich projektach.
W trakcie nauki podstaw programowania w Pythonie, studenci Codecool szybko zauważają, ze pewne fragmenty ich kodu się powielają. Nie trzeba ich więc przekonywać o użyteczności i praktycznej roli. Funkcje pozwalają zmniejszyć ilość tego kodu, ponieważ zapisujemy powtarzające się bloki kodu jako funkcje. Później zastępujemy powtarzający się kod, wywołując funkcję.
Funkcje mają wiele praktycznych zalet:
- nie musimy ciągle kopiować i wklejać tego samego kodu
- kod staje się krótszy i bardziej czytelny
- jeżeli chcielibyśmy zmienić działanie funkcji, to wystarczy, że zobimy to w jednym miejscu, a nie w wielu
Jak wywołać funkcję w Pythonie?
Funkcję w Pythonie wywołuje się w edytorze kodu (IDE) za pomocą jej nazwy. Musimy więc znać nazwę funkcji, która wykona oczekiwaną przez nas czynność. Trzeba zatem znaleźć ją w dokumentacji albo zaglądnąć do jej kodu źródłowego i zobaczyć, czy funkcja ta przyjmuje jakieś parametry wejściowe i co zwraca – innymi słowy, czy nadaje się do czynności, którą chcemy wykonać.
Jeżeli mamy swoje własne, samodzielnie napisane funkcje, to sprawa jest prosta. Wiemy bowiem, jakie funkcja przyjmuje parametry i co zwraca. Jeżeli chcemy jednak skorzystać z funkcji wbudowanych, to możemy posłużyć się dokumentacją, którą znajdziemy na stronie Pythona – python.org
Na stronie tej znajdziemy dokładny opis funkcji wraz z informacjami o parametrach wejściowych oraz o tym, co zwraca dana funkcja. Po zapoznaniu się z dokumentacją i odnalezieniu potrzebnej nam funkcji, możemy użyć jej w naszym kodzie – wystarczy że napiszemy jej nazwę, a w nawisach podamy wartości parametrów, z którymi chcemy wywołać daną funkcję.
Gdy chcemy wywołać daną funkcję, to w głównym bloku kodu albo w innej funkcji (bo możemy w jednej funkcji wywołać kolejną) podajemy nazwę pożądanej funkcji i w nawiasie listę parametrów.
Przykładowe ćwiczenia na funkcje w Pythonie
Pierwszą funkcją, jaką pisze każdy początkujący adept programowania, jest Hello World. Można wręcz nazwać to rytuałem. ? Następnie nasi studenci mają napisać funkcję, która ich pozdrowi. Potem piszą funkcje, które zwracają kwadrat danej liczby, sortują jakąś kolekcję, zwracają największy element z kolekcji. Studenci piszą też funkcję, która wypisuje elementy z ciągu Fibonacciego (np. wypisz dziewięćdziesiąty element, wypisz 100 pierwszych elementów). Przykładowym ćwiczeniem na pisanie funkcji w Pythonie może też być napisanie prostego programu, np. guessing game i zidentyfikowanie, które fragmenty programu są do siebie na tyle podobne, że możemy spróbować zastąpić je funkcjami. Pisząc prosty program typu Hangman studenci Codecool zaczynają od pisania go bez użycia funkcji, a następnie mają za zadanie zamianę powtarzających się fragmentów kodu funkcjami.
Zainteresuje Cię również:Zmienne w Python
Takie funkcje są oczywiście dostępne w oficjalnych bibliotekach, ale zależy nam, aby studenci nauczyli się na takich prostych przykładach pisania funkcji w Pythonie. Jedną z najciekawszych, jaką piszą nasi studenci, jest funkcja rysująca tabelkę dynamiczną w ASCII art. Dynamiczność tabeli polega na tym, że ma być ona tak szeroka, jak jej zawartość. Żartujemy, że ten, kto umie zrobić tę dynamiczną tabelkę, jest już pewniaczkiem – dobrym materiałem na programistę!
Podsumowanie
Funkcje w Pythonie to niezbędne narzędzie w pracy każdego programisty. Funkcje są niezwykle pomocne – dzięki nim nasz kod prezentuje się lepiej, jest krótszy i bardziej czytelny, a my, pisząc go, oszczędzamy sobie masę zbędnej pracy. Programowanie bez funkcji mogło by istnieć – oczywiście! Ale komu by się chciało pisać tyle kodu… 🙂