logo

Funkcje Pythona

Funkcje Pythona to blok instrukcji zwracających określone zadanie. Pomysł jest taki, aby połączyć ze sobą często lub wielokrotnie wykonywane zadania i stworzyć funkcję, dzięki której zamiast w kółko pisać ten sam kod dla różnych danych wejściowych, będziemy mogli wykonywać wywołania funkcji, aby wielokrotnie wykorzystywać zawarty w niej kod.

Niektóre Korzyści z używania funkcji

  • Zwiększ czytelność kodu
  • Zwiększ możliwość ponownego wykorzystania kodu

Deklaracja funkcji Pythona

Składnia deklarowania funkcji jest następująca:



Funkcje Pythona

Składnia deklaracji funkcji Pythona

Rodzaje funkcji w Pythonie

Poniżej znajdują się różne typy funkcji w Pyton :

  • Wbudowana funkcja biblioteczna: To są Funkcje standardowe w Pythonie, z których można korzystać.
  • Funkcja zdefiniowana przez użytkownika: Na podstawie naszych wymagań możemy stworzyć własne funkcje.

Tworzenie funkcji w Pythonie

Możemy zdefiniować funkcję w Pythonie, używając def słowo kluczowe. Możemy dodać do niego dowolny rodzaj funkcjonalności i właściwości, według naszych potrzeb. Na podstawie poniższego przykładu możemy zrozumieć, jak napisać funkcję w Pythonie. W ten sposób możemy stworzyć definicję funkcji Pythona za pomocą słowa kluczowego def.

Python3
# A simple Python function def fun(): print('Welcome to GFG')>

Wywołanie funkcji w Pythonie

Po stworzeniu funkcji w Pythonie możemy ją wywołać używając nazwy funkcji Python i nawiasu zawierającego parametry tej konkretnej funkcji. Poniżej znajduje się przykład wywołania funkcji def w Pythonie.

Python3
# A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()>

Wyjście:

Welcome to GFG>

Funkcja Pythona z parametrami

Jeśli masz doświadczenie w C/C++ lub Javie, musisz pomyśleć o typ zwrotu funkcji i typ danych argumentów. Jest to możliwe również w Pythonie (szczególnie w Pythonie 3.5 i nowszych).

samouczek pyspark

Składnia funkcji Pythona z parametrami

 def function_name(parameter: data_type) ->return_type: '''Docstring''' # treść funkcji return wyrażenie>

Poniższy przykład wykorzystuje argumenty i parametry o czym dowiesz się w dalszej części tego artykułu, abyś mógł do niego wrócić, jeśli nie zostanie zrozumiany.

Python3
def add(num1: int, num2: int) ->int: '''Dodaj dwie liczby''' num3 = num1 + num2 return num3 # Kod sterownika num1, num2 = 5, 15 ans = add(num1, num2) print(f'Dodanie Wyniki {num1} i {num2} {ans}.')>

Wyjście:

The addition of 5 and 15 results 20.>

Notatka: Poniższe przykłady zdefiniowano przy użyciu składni 1. Dla praktyki spróbuj przekonwertować je na składnię 2.

Python3
# some more functions def is_prime(n): if n in [2, 3]: return True if (n == 1) or (n % 2 == 0): return False r = 3 while r * r <= n: if n % r == 0: return False r += 2 return True print(is_prime(78), is_prime(79))>

Wyjście:

False True>

Argumenty funkcji Pythona

Argumenty to wartości przekazywane w nawiasach funkcji. Funkcja może mieć dowolną liczbę argumentów oddzielonych przecinkiem.

W tym przykładzie utworzymy prostą funkcję w Pythonie, która będzie sprawdzała, czy liczba przekazana jako argument do funkcji jest parzysta czy nieparzysta.

Python3
# A simple Python function to check # whether x is even or odd def evenOdd(x): if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function evenOdd(2) evenOdd(3)>

Wyjście:

even odd>

Rodzaje argumentów funkcji Pythona

Python obsługuje różne typy argumentów, które można przekazać w czasie wywołania funkcji. W Pythonie mamy w Pythonie następujące typy argumentów funkcji:

  • Domyślny argument
  • Argumenty słów kluczowych (nazwane argumenty)
  • Argumenty pozycyjne
  • Arbitralne argumenty (argumenty o zmiennej długości *args i **kwargs)

Omówmy szczegółowo każdy typ.

Domyślne argumenty

A domyślny argument to parametr, który przyjmuje wartość domyślną, jeśli w wywołaniu funkcji nie podano wartości dla tego argumentu. Poniższy przykład ilustruje domyślne argumenty do pisania funkcji w Pythonie.

Python3
# Python program to demonstrate # default arguments def myFun(x, y=50): print('x: ', x) print('y: ', y) # Driver code (We call myFun() with only # argument) myFun(10)>

Wyjście:

x: 10 y: 50>

Podobnie jak domyślne argumenty C++, dowolna liczba argumentów w funkcji może mieć wartość domyślną. Ale kiedy już mamy argument domyślny, wszystkie argumenty po jego prawej stronie również muszą mieć wartości domyślne.

Argumenty słów kluczowych

Pomysł jest taki, aby umożliwić wywołującemu określenie nazwy argumentu z wartościami, tak aby wywołujący nie musiał pamiętać kolejności parametrów.

Python3
# Python program to demonstrate Keyword Arguments def student(firstname, lastname): print(firstname, lastname) # Keyword arguments student(firstname='Geeks', lastname='Practice') student(lastname='Practice', firstname='Geeks')>

Wyjście:

Geeks Practice Geeks Practice>

Argumenty pozycyjne

Korzystaliśmy z Argument stanowiska podczas wywołania funkcji, tak że pierwszy argument (lub wartość) jest przypisany do nazwy, a drugi argument (lub wartość) do wieku. Zmieniając pozycję lub jeśli zapomnisz kolejność pozycji, wartości mogą zostać użyte w niewłaściwych miejscach, jak pokazano w przykładzie Przypadek 2 poniżej, gdzie 27 jest przypisane do imienia, a Suraj do wieku.

Python3
def nameAge(name, age): print('Hi, I am', name) print('My age is ', age) # You will get correct output because  # argument is given in order print('Case-1:') nameAge('Suraj', 27) # You will get incorrect output because # argument is not in order print('
Case-2:') nameAge(27, 'Suraj')>

Wyjście:

  Case-1:  Hi, I am Suraj My age is 27   Case-2:  Hi, I am 27 My age is Suraj>

Arbitralne argumenty słów kluczowych

W Pythonie Arbitralne argumenty słów kluczowych, *args i **kwargs może przekazać do funkcji zmienną liczbę argumentów, używając specjalnych symboli. Istnieją dwa symbole specjalne:

  • *args w Pythonie (argumenty inne niż słowa kluczowe)
  • **kwargs w Pythonie (argumenty słów kluczowych)

Przykład 1: Argument niebędący słowami kluczowymi o zmiennej długości

Python3
# Python program to illustrate # *args for variable number of arguments def myFun(*argv): for arg in argv: print(arg) myFun('Hello', 'Welcome', 'to', 'techcodeview.com')>

Wyjście:

Hello Welcome to techcodeview.com>

Przykład 2: Argumenty słów kluczowych o zmiennej długości

programowanie w Cobolu
Python3
# Python program to illustrate # *kwargs for variable number of keyword arguments def myFun(**kwargs): for key, value in kwargs.items(): print('%s == %s' % (key, value)) # Driver code myFun(first='Geeks', mid='for', last='Geeks')>

Wyjście:

first == Geeks mid == for last == Geeks>

Dokumentacja

Pierwszy ciąg znaków po funkcji nazywany jest ciągiem dokumentu lub Dokumentacja w skrócie. Służy do opisu funkcjonalności funkcji. Użycie dokumentacji w funkcjach jest opcjonalne, ale uważane jest za dobrą praktykę.

Poniższa składnia może zostać użyta do wydrukowania dokumentu funkcji.

  Syntax:   print(function_name.__doc__)>

Przykład: Dodanie Docstring do funkcji

Losowa matematyka Java
Python3
# A simple Python function to check # whether x is even or odd def evenOdd(x):  '''Function to check if the number is even or odd''' if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function print(evenOdd.__doc__)>

Wyjście:

Function to check if the number is even or odd>

Funkcja Pythona w funkcjach

Funkcja zdefiniowana wewnątrz innej funkcji nazywana jest funkcją funkcja wewnętrzna Lub funkcja zagnieżdżona . Funkcje zagnieżdżone mogą uzyskiwać dostęp do zmiennych otaczającego zakresu. Funkcje wewnętrzne służą do ochrony przed wszystkim, co dzieje się poza funkcją.

Python3
# Python program to # demonstrate accessing of # variables of nested functions def f1(): s = 'I love techcodeview.com' def f2(): print(s) f2() # Driver's code f1()>

Wyjście:

I love techcodeview.com>

Funkcje anonimowe w Pythonie

W Pythonie an funkcja anonimowa oznacza, że ​​funkcja nie ma nazwy. Jak już wiemy, słowo kluczowe def służy do definiowania normalnych funkcji, a słowo kluczowe lambda służy do tworzenia funkcji anonimowych.

Python3
# Python code to illustrate the cube of a number # using lambda function def cube(x): return x*x*x cube_v2 = lambda x : x*x*x print(cube(7)) print(cube_v2(7))>

Wyjście:

343 343>

Funkcje rekurencyjne w Pythonie

Rekurencja w Pythonie odnosi się do sytuacji, gdy funkcja wywołuje samą siebie. Istnieje wiele przypadków, w których trzeba zbudować funkcję rekurencyjną do rozwiązania Problemy matematyczne i rekurencyjne.

Korzystanie z funkcji rekurencyjnej powinno odbywać się ostrożnie, ponieważ funkcja rekurencyjna może przypominać niekończącą się pętlę. Lepiej sprawdzić instrukcję wyjścia podczas tworzenia funkcji rekurencyjnej.

Python3
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>

Wyjście

24>

Tutaj stworzyliśmy funkcję rekurencyjną do obliczenia silni liczby. Jak widać, instrukcja końcowa tej funkcji ma miejsce, gdy n jest równe 0.

Instrukcja Return w funkcji Pythona

Instrukcja return funkcji służy do wyjścia z funkcji i powrotu do osoby wywołującej funkcję oraz zwrócenia jej określonej wartości lub elementu danych. Składnia instrukcji return jest następująca:

return [expression_list]>

Instrukcja return może składać się ze zmiennej, wyrażenia lub stałej, która jest zwracana na końcu wykonywania funkcji. Jeśli żadne z powyższych nie występuje w instrukcji return, zwracany jest obiekt None.

Przykład: Instrukcja powrotu funkcji Pythona

Python3
def square_value(num):  '''This function returns the square  value of the entered number''' return num**2 print(square_value(2)) print(square_value(-4))>

Wyjście:

4 16>

Przekaż przez odniesienie i Przekaż przez wartość

Należy pamiętać, że w Pythonie każda nazwa zmiennej jest referencją. Kiedy przekazujemy zmienną do funkcji Pythona, tworzone jest nowe odwołanie do obiektu. Przekazywanie parametrów w Pythonie jest takie samo jak przekazywanie referencji w Javie.

Python3
# Here x is a new reference to same list lst def myFun(x): x[0] = 20 # Driver Code (Note that lst is modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

Wyjście:

[20, 11, 12, 13, 14, 15]>

Kiedy przekazujemy referencję i zmieniamy otrzymaną referencję na inną, połączenie pomiędzy przekazanymi i otrzymanymi parametrami zostaje zerwane. Rozważmy na przykład poniższy program w następujący sposób:

Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = [20, 30, 40] # Driver Code (Note that lst is not modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

Wyjście:

[10, 11, 12, 13, 14, 15]>

Inny przykład pokazuje, że łącze referencyjne zostanie zerwane, jeśli przypiszemy nową wartość (wewnątrz funkcji).

jeśli inaczej, jeśli Java
Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = 20 # Driver Code (Note that x is not modified # after function call. x = 10 myFun(x) print(x)>

Wyjście:

10>

Ćwiczenia: Spróbuj odgadnąć wynik poniższego kodu.

Python3
def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>

Wyjście:

2 3>

Szybkie linki

  • Quiz na temat funkcji Pythona
  • Różnica między metodą a funkcją w Pythonie
  • Funkcje pierwszej klasy w Pythonie
  • Najnowsze artykuły na temat funkcji Pythona .

Często zadawane pytania — funkcje Pythona

Pytanie 1. Co to jest funkcja w Pythonie?

Funkcja Pythona to blok kodu, który działa tylko wtedy, gdy zostanie wywołany. Jest zaprogramowany tak, aby zwracał określone zadanie. Wartości można przekazywać w funkcjach zwanych parametrami. Pomaga w wykonywaniu powtarzalnych zadań.

Pytanie 2. Jakie są 4 typy funkcji w Pythonie?

Główne typy funkcji w Pythonie to:

  • Wbudowana funkcja
  • Funkcja zdefiniowana przez użytkownika
  • Funkcje lambdy
  • Funkcje rekurencyjne

Pytanie 3. H ow napisać funkcję w Pythonie ?

Aby napisać funkcję w Pythonie, możesz użyć słowa kluczowego def, a następnie wpisać nazwę funkcji. Możesz podać kod funkcji po użyciu ':'. Podstawowa składnia definiująca funkcję to:

def nazwa_funkcji():

#oświadczenie

Pytanie 4. Jakie są parametry funkcji w Pythonie?

Parametry w Pythonie to zmienne, które przyjmują wartości przekazane jako argumenty podczas wywoływania funkcji. Funkcja może mieć dowolną liczbę parametrów. Możesz także ustawić wartość domyślną parametru w Pythonie.