Jak wywołać funkcję w Python (Przykład)

⚡ Inteligentne podsumowanie

Funkcje w Python To wielokrotnego użytku bloki kodu, które uruchamiają się po wywołaniu, zdefiniowane za pomocą polecenia def. Akceptują argumenty, zwracają wartości i wykorzystują spójne wcięcia, aby grupować polecenia należące do każdej funkcji.

  • 🧩 def oświadczenie: Funkcję definiuje się za pomocą słowa kluczowego def, nazwy, nawiasów, po których następuje dwukropek, który otwiera wcięty blok poleceń.
  • 📞 Wywoływanie funkcji: Wpisanie nazwy funkcji, po której następują nawiasy, powoduje uruchomienie kodu, dzięki czemu tę samą logikę można wykorzystać wielokrotnie.
  • ⌨️. Wcięcie: Python grupuje ciało funkcji za pomocą spójnego wcięcia zamiast nawiasów klamrowych, więc brak spacji powoduje wyjątek IndentationError.
  • 🎯 argumenty: Wartości przekazane w nawiasach stają się parametrami, a wartości domyślne lub argumenty słów kluczowych sprawiają, że każde wywołanie jest elastyczne.
  • ↩️ Wartości zwracane: Polecenie return przekazuje wynik z powrotem do wywołującego; bez niego funkcja zwraca None.
  • 🤖 Pomoc AI: Asystenci AI, tacy jak GitHub Copilot, generują szkielety funkcji, argumenty i docstringi na podstawie krótkiego monitu.

Jak wywołać funkcję w Python

W czym jest funkcja Python?

A Funkcja w Python To fragment kodu, który uruchamia się po odwołaniu. Służy do wykorzystania kodu w więcej niż jednym miejscu programu. Nazywa się go również metodą lub procedurą. Python udostępnia wiele wbudowanych funkcji, takich jak print(), input(), compile() i exec(), ale daje również swobodę tworzenia własnych funkcji.

Jak zdefiniować i wywołać funkcję w Python

Funkcja w Python jest definiowany za pomocą polecenia „def”, po którym następuje nazwa funkcji i nawiasy ( () ).

Przykład:

Zdefiniujmy funkcję za pomocą polecenia „def func1():” i wywołajmy ją. Wynik funkcji będzie brzmiał: „Uczę się Python funkcjonować".

Zdefiniuj i wywołaj funkcję w Python

Wywołanie funkcji func1() wywołuje naszą def func1(): i wyświetla polecenie „Uczę się Python Funkcja Brak.”

Istnieje zestaw zasad w Python programowanie zdefiniować funkcję.

  • Wszelkie argumenty i parametry wejściowe należy umieszczać w nawiasach.
  • Pierwsze polecenie funkcji może być poleceniem opcjonalnym — ciągiem dokumentacyjnym funkcji.
  • Kod w każdej funkcji zaczyna się od dwukropka (:) i powinien być wcięty (spacją).
  • Instrukcja return (wyrażenie) kończy działanie funkcji, opcjonalnie przekazując wartość do wywołującego. Instrukcja return bez argumentów działa tak samo jak return None.

Znaczenie wcięcia (spacji) w Python

Zanim się zapoznamy Python funkcje, ważne jest, abyśmy zrozumieli zasadę wcięcia, którą należy zadeklarować Python funkcje, a zasady te mają zastosowanie do innych elementów Python jak również deklarowanie warunków, pętli lub zmiennych.

Python stosuje określony styl wcięć, aby zdefiniować kod. Ponieważ Python Funkcje nie mają wyraźnego początku ani końca, jak nawiasy klamrowe, wskazujące początek i koniec funkcji. Muszą polegać na tym wcięciu. Oto prosty przykład z poleceniem „print”. Gdy wpiszemy funkcję „print” tuż pod wierszem def func1():, pojawi się komunikat „błąd wcięcia: oczekiwano wciętego bloku”.

Zdefiniuj i wywołaj funkcję w Python

Teraz, gdy dodasz wcięcie (spację) przed funkcją „print”, wydruk powinien zostać wykonany zgodnie z oczekiwaniami.

Zdefiniuj i wywołaj funkcję w Python

Przynajmniej jedno wcięcie wystarczy, aby kod działał poprawnie. Jednak zgodnie z najlepszą praktyką zaleca się pozostawienie około 3–4 spacji wcięcia na wywołanie funkcji.

Konieczne jest również, aby deklarując wcięcie, zachować to samo wcięcie w pozostałej części kodu. Na przykład, na poniższym zrzucie ekranu, gdy wywołamy inną instrukcję „still in func1”, która nie zostanie zadeklarowana tuż pod pierwszą instrukcją print, pojawi się błąd wcięcia: „unindent does not match any other indentation level”.

Zdefiniuj i wywołaj funkcję w Python

Teraz, gdy zastosujemy to samo wcięcie dla obu poleceń i wyrównamy je do jednego wiersza, otrzymamy oczekiwany wynik.

Zdefiniuj i wywołaj funkcję w Python

Jak funkcja zwraca wartość?

Polecenie powrotu w Python Określa, jaką wartość zwrócić wywołującemu funkcję. Zrozumiemy to na poniższym przykładzie.

Krok 1) Funkcja nic nie zwraca

Tutaj widzimy, kiedy funkcja nie „zwraca”. Na przykład, chcemy kwadratu 4, a po wykonaniu kodu powinna zwrócić wynik „16”. Dzieje się tak, gdy po prostu użyjemy kodu „print x*x”, ale po wywołaniu funkcji „print square” zwraca ona wynik „None”. Dzieje się tak, ponieważ po wywołaniu funkcji rekurencja nie występuje i funkcja opuszcza koniec funkcji. Python zwraca „Brak” w przypadku wypadnięcia z końca funkcji.

Zdefiniuj i wywołaj funkcję w Python

Krok 2) Zastąp polecenie drukowania poleceniem przypisania

Aby to wyjaśnić, zastąpmy polecenie drukowania poleceniem przypisania. Sprawdźmy wynik.

Zdefiniuj i wywołaj funkcję w Python

Po uruchomieniu polecenia „print square (4)” zwraca ono wartość obiektu. Ponieważ nie mamy tu żadnej konkretnej funkcji do uruchomienia, zwraca ono „None”.

Krok 3) Użyj funkcji „return” i wykonaj kod

Teraz pokażemy, jak pobrać wynik za pomocą polecenia „return”. Po użyciu funkcji „return” i wykonaniu kodu, zwróci on wynik „16”.

Zdefiniuj i wywołaj funkcję w Python

Krok 4) Uruchom polecenie „print Square”

Funkcje w Python same w sobie są przedmiotem, a przedmiot ma jakąś wartość. Zobaczymy tutaj, jak to zrobić Python przetwarza obiekt. Po uruchomieniu polecenia „print square” zwraca ono wartość obiektu. Ponieważ nie przekazaliśmy żadnego argumentu, nie mamy tu żadnej konkretnej funkcji do uruchomienia, więc zwraca wartość domyślną (0x021B2D30), która określa lokalizację obiektu. W praktyce Python programu, prawdopodobnie nigdy nie będziesz musiał tego robić.

Zdefiniuj i wywołaj funkcję w Python

Argumenty w funkcjach

Argument to wartość przekazywana do funkcji w momencie jej wywołania.

Innymi słowy, po stronie wywołania jest to argument, a po stronie funkcji jest to parametr.

Zobaczmy jak Python argumenty działają.

Krok 1) Argumenty deklaruje się w definicji funkcji. Podczas wywołania funkcji można przekazać wartości tych argumentów, jak pokazano poniżej.

Zdefiniuj i wywołaj funkcję w Python

Krok 2) Aby zadeklarować wartość domyślną argumentu, należy przypisać mu wartość w definicji funkcji.

Zdefiniuj i wywołaj funkcję w Python

Przykład: x nie ma wartości domyślnej. Wartość domyślna y = 0. Gdy podajemy tylko jeden argument podczas wywołania funkcji mnożenia, Python przypisuje podaną wartość do x, podczas gdy keeping wartość y=0. Stąd mnożenie x*y=0.

Zdefiniuj i wywołaj funkcję w Python

Krok 3) Tym razem zmienimy wartość na y=2 zamiast domyślnej wartości y=0, a wynik zwrócimy w postaci (4×2)=8.

Zdefiniuj i wywołaj funkcję w Python

Krok 4) Można również zmienić kolejność przekazywania argumentów PythonTutaj odwróciliśmy kolejność wartości x i y na x=4 i y=2.

Zdefiniuj i wywołaj funkcję w Python

Krok 5) Wiele argumentów można również przekazać jako tablicę. W tym przykładzie wywołujemy wiele argumentów (1,2,3,4,5) poprzez wywołanie funkcji (*args).

Przykład: Zadeklarowaliśmy wiele argumentów jako liczby (1,2,3,4,5); gdy wywołamy funkcję (*args), wydrukuje ona dane wyjściowe w postaci (1,2,3,4,5).

Zdefiniuj i wywołaj funkcję w Python

Porady:

  • In Python 2.7, przeciążanie funkcji nie jest obsługiwane. Przeciążanie funkcji to możliwość tworzenia wielu metod o tej samej nazwie z różną implementacją. Przeciążanie funkcji jest w pełni obsługiwane w Python 3.
  • Istnieje spore zamieszanie pomiędzy metodami i funkcjami. Metody w Python są powiązane z instancjami obiektów, podczas gdy funkcje nie. Kiedy Python wywołuje metodę, wiąże pierwszy parametr tego wywołania z odpowiednim odwołaniem do obiektu. Krótko mówiąc, samodzielna funkcja w Python jest „funkcją”, natomiast funkcja będąca atrybutem klasy lub instancji jest „metodą”.

Oto kompletny Python 3 kodu

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

Oto kompletny Python 2 kodu

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

FAQ

Tak. ZA Python Funkcja może zwracać wiele wartości, rozdzielając je przecinkami po słowie kluczowym return. Python pakuje je do krotki, którą wywołujący może rozpakować do oddzielnych zmiennych, na przykład a, b = func().

*args gromadzi dodatkowe argumenty pozycyjne w krotkę, podczas gdy **kwargs gromadzi dodatkowe argumenty słów kluczowych w słowniku. Oba pozwalają funkcji akceptować zmienną liczbę danych wejściowych, a nazwy args i kwargs są jedynie konwencją, a nie wymogiem.

Docstring to literał ciągu znaków umieszczany jako pierwsze polecenie funkcji w celu udokumentowania jej działania. Jest on zapisywany w potrójnych cudzysłowach i można go odczytać w czasie wykonywania za pomocą atrybutu __doc__ funkcji lub funkcji help().

Lambda to mała, anonimowa funkcja zdefiniowana w jednym wierszu za pomocą słowa kluczowego lambda zamiast def. Pasuje do krótkiej, jednorazowej logiki przekazywanej do funkcji takich jak map(), filter() i sorted(). Zobacz to funkcja lambda przewodnik.

Tak. Funkcja, która wywołuje samą siebie, jest funkcją rekurencyjną. Rekurencja rozwiązuje problemy, które dzielą się na mniejsze, podobne podproblemy, takie jak silnia. Każda funkcja rekurencyjna wymaga przypadku bazowego, który zatrzymuje wywołania, w przeciwnym razie Python podnosi wyjątek RecursionError.

Zmienna lokalna jest tworzona wewnątrz funkcji i istnieje tylko podczas jej działania. Zmienna globalna jest definiowana poza wszystkimi funkcjami i jest widoczna wszędzie. Aby zmienić zmienną globalną wewnątrz funkcji, należy ją najpierw zadeklarować za pomocą słowa kluczowego global.

GitHub Copilot sugeruje pełne ciało funkcji na podstawie jej nazwy lub krótki komentarz, zawierający parametry, instrukcje return i docstringi. Proponuje również obsługę przypadków skrajnych i testy, pozwalając skupić się na logice, a nie na…ping szablonowe bloki def.

Funkcje organizują kod sztucznej inteligencji i uczenia maszynowego w wielokrotnego użytku kroki, takie jak ładowanie danych, wstępne przetwarzanie, trenowanie i ewaluacja. Sprawiają, że eksperymenty są czytelne i możliwe do przetestowania, a frameworki takie jak TensorFlow i scikit-learn ujawniają większość ich działania za pomocą dobrze nazwanych funkcji, które wywołujesz.

Podsumuj ten post następująco: