Funkcje w Pythonie
- Poprzednia strona Pętla For w Pythonie
- Następna strona Lambda w Pythonie
Funkcja to blok kodu, który działa tylko podczas wywoływania.
Możesz przekazać dane (nazywane parametrami) do funkcji.
Funkcja może zwracać dane jako wynik.
do tworzenia funkcji
W Pythonie, używamy def
Kluczowe słowo definiuje funkcję:
Przykład
def moja_funkcja(): print("Hello from a function")
Wywołanie funkcji
Aby wywołać funkcję, użyj nazwy funkcji połączonej z nawiasami:
Przykład
def moja_funkcja(): print("Hello from a function") my_function()
Parametry
Informacje mogą być przekazywane jako parametry do funkcji.
Parametry są określone w nawiasach po nazwie funkcji. Możesz dodać dowolną liczbę parametrów, oddzielonych przecinkami.
Poniższy przykład ma funkcję z parametrem (nazwa). Gdy wywołujemy tę funkcję, przekazujemy imię, które używamy wewnątrz funkcji do wydruku pełnej nazwy:
Przykład
def moja_funkcja(nazwa): print(nazwa + " Gates") moja_funkcja("Bill") moja_funkcja("Steve") moja_funkcja("Elon")
Wartości domyślne parametrów
Poniższy przykład pokazuje, jak używać wartości domyślnych parametrów.
Jeśli wywołaliśmy funkcję bez parametrów, używamy wartości domyślnej:
Przykład
def moja_funkcja(kraj = "Chiny"): print("Pochodzę z " + country) my_function("Sweden") my_function("India") my_function() my_function("Brazil")
Przesyłanie listy jako argumentu
Argumety wysyłane do funkcji mogą być dowolnego typu danych (stringi, liczby, listy, słowniki itp.) i będą traktowane jako ten sam typ danych wewnątrz funkcji.
Na przykład, jeśli wyslesz List jako argument, nadal będzie to List (lista) po dotarciu do funkcji:
Przykład
def my_function(food): for x in food: print(x) fruits = ["apple", "banana", "cherry"] my_function(fruits)
Zwracana wartość
Aby funkcja zwróciła wartość, użyj return
Złożenie:
Przykład
def my_function(x): return 5 * x print(my_function(3)) print(my_function(5)) print(my_function(9))
Kluczowe argumenty
Możesz również używać składni key = value do wysyłania argumentów.
Porządek argumentów nie ma znaczenia.
Przykład
def my_function(child3, child2, child1): print("Najmłodsze dziecko to " + child3) my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")
W dokumentacji Pythona, słowo kluczowe "kluczowe argumenty" jest często skracane do kwargs.
Dowolne argumenty
Jeśli nie wiesz, ile argumentów zostanie przekazanych do Twojej funkcji, dodaj * przed nazwą argumentu w definicji funkcji.
W ten sposób funkcja będzie przyjmować parametr tuple i będzie mogła odpowiednio dostępuć do poszczególnych elementów:
Przykład
Jeśli liczba argumentów jest nieznana, dodaj * przed nazwą argumentu:
def my_function(*kids): print("Najmłodsze dziecko to " + kids[2]) my_function("Phoebe", "Jennifer", "Rory")
Polecenie pass
Definicja funkcji nie może być pusta, ale jeśli z jakiegoś powodu napisałeś pustą definicję funkcji, użyj polecenia pass, aby uniknąć błędów.
Przykład
def myfunction: pass
Rekurencja
Python również akceptuje rekurencję funkcji, co oznacza, że zdefiniowana funkcja może wywoływać siebie.
Rekurencja jest powszechnym pojęciem matematycznym i programistycznym. Oznacza to, że funkcja wywołuje siebie. korzyścią jest to, że można cyklicznie dostępu do danych w celu osiągnięcia wyniku.
Deweloperzy powinni być bardzo ostrożni w stosowaniu rekurencji, ponieważ można łatwo napisać funkcję, która nigdy się nie zakończy, lub która zużyje nadmiernie pamięć lub zasoby procesora. Ale poprawnie napisana, rekurencja może być bardzo efektywnym i matematycznie eleganckim sposobem programowania.
W tym przykładzie:tri_recursion()
Jest to funkcja, którą zdefiniowaliśmy jako wywołującą siebie ("recurse"). Używamy zmiennej k jako danych, co pozwala na cykliczne dostępu do danych w celu osiągnięcia wyniku. Rekurencja kończy się, gdy warunek nie jest większy niż 0 (np. gdy wynosi 0).
Dla nowych deweloperów może zająć trochę czasu, aby zrozumieć, jak to działa, najlepszym sposobem jest przetestowanie i modyfikacja.
Przykład
Przykład rekurencji:
def tri_recursion(k): if(k>0): result = k+tri_recursion(k-1) print(result) else: result = 0 return result print("\n\nWyniki przykładowej rekurencji") tri_recursion(6)
- Poprzednia strona Pętla For w Pythonie
- Następna strona Lambda w Pythonie