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:

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.>
Python3Notatka: Poniższe przykłady zdefiniowano przy użyciu składni 1. Dla praktyki spróbuj przekonwertować je na składnię 2.
# 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 CoboluPython3
# 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 JavaPython3
# 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 JavaPython3
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.