Funkcje 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()

Uruchom przykład

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")

Uruchom przykład

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")

Uruchom przykład

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)

Uruchom przykład

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))

Uruchom przykład

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")

Uruchom przykład

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")

Uruchom przykład

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

Uruchom przykład

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)

Uruchom przykład