Funkce Pythonu je blok příkazů, které vracejí konkrétní úkol. Myšlenkou je dát dohromady některé běžně nebo opakovaně prováděné úkoly a vytvořit funkci tak, abychom místo psaní stejného kódu znovu a znovu pro různé vstupy mohli znovu a znovu používat kód v něm obsažený voláním funkcí.
Nějaký Výhody používání funkcí
- Zvyšte čitelnost kódu
- Zvyšte znovupoužitelnost kódu
Deklarace funkce Pythonu
Syntaxe pro deklaraci funkce je:

Syntaxe deklarace funkce Pythonu
Typy funkcí v Pythonu
Níže jsou uvedeny různé typy funkcí Krajta :
- Funkce vestavěné knihovny: Tyto jsou Standardní funkce v Pythonu, které jsou k dispozici k použití.
- Uživatelsky definovaná funkce: Můžeme si vytvořit vlastní funkce na základě našich požadavků.
Vytvoření funkce v Pythonu
Můžeme definovat funkci v Pythonu pomocí def klíčové slovo. Můžeme k němu přidat libovolný typ funkcionalit a vlastností, jak požadujeme. Na následujícím příkladu můžeme pochopit, jak napsat funkci v Pythonu. Tímto způsobem můžeme vytvořit definici funkce Pythonu pomocí klíčového slova def.
Python3 # A simple Python function def fun(): print('Welcome to GFG')> Volání funkce v Pythonu
Po vytvoření funkce v Pythonu ji můžeme zavolat pomocí názvu funkce Python následovaného závorkou obsahující parametry této konkrétní funkce. Níže je uveden příklad volání def funkce Pythonu.
Python3 # A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()> Výstup:
Welcome to GFG>
Funkce Python s parametry
Pokud máte zkušenosti s C/C++ nebo Javou, musíte o tom přemýšlet návratový typ funkce a datový typ argumentů. To je možné i v Pythonu (konkrétně pro Python 3.5 a vyšší).
Syntaxe funkce Pythonu s parametry
def function_name(parameter: data_type) ->return_type: '''Docstring''' # tělo funkce return výraz>
Následující příklad používá argumenty a parametry které se dozvíte později v tomto článku, abyste se k němu mohli znovu vrátit, pokud nerozumíte.
Python3 def add(num1: int, num2: int) ->int: '''Přidej dvě čísla''' num3 = num1 + num2 return num3 # Kód ovladače num1, num2 = 5, 15 ans = add(num1, num2) print(f'Přidání {num1} a {num2} výsledky {ans}.')> Výstup:
The addition of 5 and 15 results 20.>
Python3Poznámka: Následující příklady jsou definovány pomocí syntaxe 1, zkuste je pro procvičení převést do syntaxe 2.
von Neumannova architektura
# 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))>
Výstup:
False True>
Argumenty funkce Python
Argumenty jsou hodnoty předané v závorkách funkce. Funkce může mít libovolný počet argumentů oddělených čárkou.
V tomto příkladu vytvoříme jednoduchou funkci v Pythonu pro kontrolu, zda je číslo předané funkci jako argument sudé nebo liché.
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)> Výstup:
even odd>
Typy argumentů funkcí Pythonu
Python podporuje různé typy argumentů, které lze předat v době volání funkce. V Pythonu máme v Pythonu následující typy argumentů funkcí:
- Výchozí argument
- Argumenty klíčových slov (pojmenované argumenty)
- Poziční argumenty
- Svévolné argumenty (argumenty s proměnnou délkou *args a **kwargs)
Pojďme diskutovat o každém typu podrobně.
Výchozí argumenty
A výchozí argument je parametr, který nabývá výchozí hodnoty, pokud není hodnota uvedena ve volání funkce pro tento argument. Následující příklad ukazuje výchozí argumenty pro zápis funkcí v Pythonu.
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)> Výstup:
x: 10 y: 50>
Stejně jako výchozí argumenty C++ může mít libovolný počet argumentů ve funkci výchozí hodnotu. Jakmile však máme výchozí argument, všechny argumenty napravo od něj musí mít také výchozí hodnoty.
Argumenty klíčových slov
Cílem je umožnit volajícímu zadat název argumentu s hodnotami, takže si volající nemusí pamatovat pořadí parametrů.
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')>
Výstup:
c# slovník
Geeks Practice Geeks Practice>
Poziční argumenty
Použili jsme Argument pozice během volání funkce tak, že první argument (nebo hodnota) je přiřazen k názvu a druhý argument (nebo hodnota) je přiřazena věku. Změnou pozice, nebo pokud zapomenete pořadí pozic, mohou být hodnoty použity na nesprávných místech, jak ukazuje příklad Case-2 níže, kde je 27 přiřazeno jménu a Suraj přiřazen věku.
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')> Výstup:
Case-1: Hi, I am Suraj My age is 27 Case-2: Hi, I am 27 My age is Suraj>
Arbitrary Keyword Argumenty
V argumentech Arbitrary Keyword Arbitrary Python *args a **kwargs může předat funkci proměnný počet argumentů pomocí speciálních symbolů. Existují dva speciální symboly:
- *argumenty v Pythonu (argumenty bez klíčových slov)
- **kwargs v Pythonu (argumenty klíčových slov)
Příklad 1: Argument neklíčových slov s proměnnou délkou
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')> Výstup:
Hello Welcome to techcodeview.com>
Příklad 2: Argumenty klíčových slov s proměnnou délkou
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')> Výstup:
first == Geeks mid == for last == Geeks>
Docstring
První řetězec za funkcí se nazývá řetězec dokumentu nebo Docstring ve zkratce. To se používá k popisu funkčnosti funkce. Použití docstring ve funkcích je volitelné, ale považuje se to za osvědčený postup.
Níže uvedenou syntaxi lze použít k vytištění dokumentačního řetězce funkce.
Syntax: print(function_name.__doc__)>
Příklad: Přidání Docstring do funkce
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__)> Výstup:
Function to check if the number is even or odd>
Funkce Pythonu v rámci funkcí
Funkce, která je definována uvnitř jiné funkce, se nazývá vnitřní funkce nebo vnořená funkce . Vnořené funkce mohou přistupovat k proměnným obklopujícího oboru. Vnitřní funkce slouží k tomu, aby mohly být chráněny před vším, co se děje mimo funkci.
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()>
Výstup:
I love techcodeview.com>
Anonymní funkce v Pythonu
V Pythonu, an anonymní funkce znamená, že funkce je bez názvu. Jak již víme, klíčové slovo def se používá k definování normálních funkcí a klíčové slovo lambda se používá k vytváření anonymních funkcí.
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))>
Výstup:
343 343>
Rekurzivní funkce v Pythonu
Rekurze v Pythonu označuje, když funkce volá sama sebe. Existuje mnoho případů, kdy musíte k vyřešení vytvořit rekurzivní funkci Matematické a rekurzivní problémy.
Použití rekurzivní funkce by mělo být prováděno opatrně, protože rekurzivní funkce se může stát neukončenou smyčkou. Při vytváření rekurzivní funkce je lepší zkontrolovat příkaz exit.
Python3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Výstup
24>
Zde jsme vytvořili rekurzivní funkci pro výpočet faktoriálu čísla. Můžete vidět, že koncový příkaz pro tuto funkci je, když n je rovno 0.
Příkaz Return ve funkci Python
Příkaz return function se používá k ukončení funkce a návratu k volajícímu funkce a vrácení zadané hodnoty nebo datové položky volajícímu. Syntaxe příkazu return je:
return [expression_list]>
Příkaz return se může skládat z proměnné, výrazu nebo konstanty, která je vrácena na konci provádění funkce. Pokud u příkazu return není k dispozici nic z výše uvedeného, vrátí se objekt None.
Příklad: Příkaz návratu funkce Pythonu
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))>
Výstup:
4 16>
Pass by Reference a Pass by Value
Jedna důležitá věc je, že v Pythonu je každý název proměnné odkaz. Když předáme proměnnou funkci Python, vytvoří se nový odkaz na objekt. Předávání parametrů v Pythonu je stejné jako předávání referencí v Javě.
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)>
Výstup:
[20, 11, 12, 13, 14, 15]>
Když předáme referenci a změníme přijatou referenci na něco jiného, spojení mezi předanými a přijatými parametry se přeruší. Zvažte například následující program:
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)>
Výstup:
[10, 11, 12, 13, 14, 15]>
Další příklad ukazuje, že odkaz na odkaz se přeruší, pokud přiřadíme novou hodnotu (uvnitř funkce).
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)>
Výstup:
10>
Cvičení: Zkuste uhodnout výstup následujícího kódu.
Python3 def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>
Výstup:
2 3>
Rychlé odkazy
- Kvíz o funkcích Pythonu
- Rozdíl mezi metodou a funkcí v Pythonu
- Funkce první třídy v Pythonu
- Nedávné články o funkcích Pythonu .
Nejčastější dotazy – Funkce Pythonu
Q1. Co je funkce v Pythonu?
Funkce Python je blok kódu, který se spouští pouze tehdy, když je zavolán. Je naprogramován tak, aby vrátil konkrétní úkol. Hodnoty můžete předávat ve funkcích nazývaných parametry. Pomáhá při provádění opakujících se úkolů.
Q2. Jaké jsou 4 typy funkcí v Pythonu?
Hlavní typy funkcí v Pythonu jsou:
- Vestavěná funkce
- Uživatelsky definovaná funkce
- Lambda funkce
- Rekurzivní funkce
Q3. H jak napsat funkci v Pythonu ?
Chcete-li napsat funkci v Pythonu, můžete použít klíčové slovo def a poté napsat název funkce. Po použití můžete zadat kód funkce ':'. Základní syntaxe pro definování funkce je:
tostring javadef název_funkce():
#prohlášení
Q4. Jaké jsou parametry funkce v Pythonu?
Parametry v Pythonu jsou proměnné, které přebírají hodnoty předané jako argumenty při volání funkcí. Funkce může mít libovolný počet parametrů. Můžete také nastavit výchozí hodnotu parametru v Pythonu.