Własne funkcje
Funkcje
Do tej pory korzystaliśmy z funkcji dostarczonych nam przez Pythona (np . print), lub "wgranych" z biblioteki / modułu.
Pisząc własne programy już na tym etapie zetknęliśmy się z sytuacją gdy robiliśmy podobną rzecz wiele razy - zmieniały się np. tylko dane wejściowe np. modyfikowaliśmy jakiś adres w książce adresowej, gdzie zmieniało się tylko, który adres był modyfikowany.
Możemy taką funkcjonalność ;) zebrać w całość i udostępnić jako własną funkcję.
Własną funkcję deklarujemy używając słowa def.
np.
def kwadrat(x:int) -> int:
wynik = x * x
return wynik
Zwróćcie uwagę na słowo return - wykorzystujemy je jeśli chcemy, żeby nasza funkcja poza wykonaniem jakiejś operacji zwróciła nam jakąś wartość (którą np. możemy przypisać do zmiennej). Bardzo dużo funkcji korzysta z tej opcji - np. funkcja sum zwraca nam sumę dwóch liczb, funkcja max zwraca nam największą wartość przechowywaną chociażby na liście itd.
Nie jest to jednak reguła - np. funkcja print wyświetla nam daną zawartość na ekranie, ale nie zwraca żadnej wartości.
Powyższy przykład zawiera nieco nieobowiązkowych rzeczy:
- informację o oczekiwanym typie danych parametru wykorzystywanego w funkcji (
x:int) - informację o zwracanym typie danych (
-> int)
Dodawanie tych informacji jest dobrą praktyką - ułatwia nam (i innym użytkownikom tego kodu) korzystanie z programu.
Ponadto dzięki nim narzędzia jakich używamy do pisania będą w stanie podpowiadać nam w przypadku popełnienia błędu związanego z użyciem nieprawidłowego typu.
Tak skonstruowana funkcje wykorzystujemy identycznie jak te wbudowane np.
def kwadrat(x:int) -> int:
wynik = x * x
return wynik
liczba = kwadrat(2)
print(liczba)
Powyższa kod wyświetli nam 4 gdyż jest to 2 podniesione do kwadratu (a właśnie to robi ta funkcja kwadrat).
