Funkcie Pythonu je blok príkazov, ktoré vracajú konkrétnu úlohu. Myšlienkou je dať dohromady niektoré bežne alebo opakovane vykonávané úlohy a vytvoriť funkciu, takže namiesto toho, aby sme písali ten istý kód znova a znova pre rôzne vstupy, mohli sme znova a znova použiť kód v ňom obsiahnutý.
Niektorí Výhody používania funkcií
- Zvýšte čitateľnosť kódu
- Zvýšte znovupoužiteľnosť kódu
Deklarácia funkcie Pythonu
Syntax na deklarovanie funkcie je:

Syntax deklarácie funkcie Pythonu
Typy funkcií v Pythone
Nižšie sú uvedené rôzne typy funkcií Python :
- Funkcia vstavanej knižnice: Toto sú Štandardné funkcie v Pythone, ktoré sú k dispozícii na použitie.
- Funkcia definovaná používateľom: Na základe našich požiadaviek si vieme vytvoriť vlastné funkcie.
Vytvorenie funkcie v Pythone
V Pythone môžeme definovať funkciu pomocou def kľúčové slovo. Môžeme k nemu pridať ľubovoľný typ funkcionalít a vlastností podľa potreby. Na nasledujúcom príklade môžeme pochopiť, ako napísať funkciu v Pythone. Týmto spôsobom môžeme vytvoriť definíciu funkcie Pythonu pomocou kľúčového slova def.
Python3 # A simple Python function def fun(): print('Welcome to GFG')> Volanie funkcie v Pythone
Po vytvorení funkcie v Pythone ju môžeme zavolať pomocou názvu funkcie Python, za ktorým nasleduje zátvorka obsahujúca parametre danej funkcie. Nižšie je uvedený príklad volania def funkcie Python.
Python3 # A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()> Výkon:
Welcome to GFG>
Funkcia Python s parametrami
Ak máte skúsenosti s jazykom C/C++ alebo Java, musíte o tom premýšľať návratový typ funkcie a Dátový typ argumentov. To je možné aj v Pythone (konkrétne pre Python 3.5 a vyššie).
kat timpf čisté imanie
Syntax funkcie Pythonu s parametrami
def function_name(parameter: data_type) ->return_type: '''Docstring''' # telo funkcie return výraz>
Nasledujúci príklad používa argumenty a parametre ktoré sa dozviete neskôr v tomto článku, aby ste sa k nemu mohli vrátiť, ak nepochopíte.
Python3 def add(num1: int, num2: int) ->int: '''Pridať dve čísla''' num3 = num1 + num2 return num3 # Kód ovládača num1, num2 = 5, 15 ans = add(num1, num2) print(f'Pridanie {num1} a {num2} výsledky {ans}.')> Výkon:
The addition of 5 and 15 results 20.>
Python3Poznámka: Nasledujúce príklady sú definované pomocou syntaxe 1, skúste si ich precvičiť v syntaxi 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))>
Výkon:
False True>
Argumenty funkcie Pythonu
Argumenty sú hodnoty odovzdané v zátvorkách funkcie. Funkcia môže mať ľubovoľný počet argumentov oddelených čiarkou.
V tomto príklade vytvoríme jednoduchú funkciu v Pythone, aby sme skontrolovali, či číslo odovzdané funkcii ako argument je párne alebo nepárne.
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ýkon:
even odd>
Typy argumentov funkcie Python
Python podporuje rôzne typy argumentov, ktoré možno odovzdať v čase volania funkcie. V Pythone máme v Pythone nasledujúce typy argumentov funkcií:
- Predvolený argument
- Argumenty kľúčových slov (pomenované argumenty)
- Pozičné argumenty
- Svojvoľné argumenty (argumenty s premenlivou dĺžkou *args a **kwargs)
Poďme diskutovať o každom type podrobne.
Predvolené argumenty
A predvolený argument je parameter, ktorý predpokladá predvolenú hodnotu, ak hodnota nie je uvedená vo volaní funkcie pre tento argument. Nasledujúci príklad ilustruje predvolené argumenty na písanie funkcií v Pythone.
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ýkon:
x: 10 y: 50>
Rovnako ako predvolené argumenty C++, ľubovoľný počet argumentov vo funkcii môže mať predvolenú hodnotu. Ale keď už máme predvolený argument, všetky argumenty napravo od neho musia mať tiež predvolené hodnoty.
Argumenty kľúčových slov
Myšlienkou je umožniť volajúcemu zadať názov argumentu s hodnotami, aby si volajúci nemusel pamätať poradie parametrov.
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ýkon:
Geeks Practice Geeks Practice>
Pozičné argumenty
Použili sme Argument pozície počas volania funkcie tak, že prvý argument (alebo hodnota) je priradený názvu a druhý argument (alebo hodnota) je priradený veku. Zmenou pozície, alebo ak zabudnete poradie pozícií, môžu byť hodnoty použité na nesprávnych miestach, ako ukazuje príklad Case-2 nižšie, kde 27 je priradené k menu a Suraj je priradené veku.
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ýkon:
Case-1: Hi, I am Suraj My age is 27 Case-2: Hi, I am 27 My age is Suraj>
Arbitrardné kľúčové slová
V argumentoch Arbitrary Keyword Arbitrary Python *args a **kwargs môže funkcii odovzdať premenný počet argumentov pomocou špeciálnych symbolov. Existujú dva špeciálne symboly:
- *argumenty v Pythone (argumenty bez kľúčových slov)
- **kwargs v Pythone (argumenty kľúčových slov)
Príklad 1: Argument s premenlivou dĺžkou, ktorý neobsahuje kľúčové slová
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ýkon:
Hello Welcome to techcodeview.com>
Príklad 2: Argumenty kľúčových slov s premenlivou dĺžkou
nat vs postelPython3
# 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ýkon:
first == Geeks mid == for last == Geeks>
Docstring
Prvý reťazec za funkciou sa nazýva Reťazec dokumentu resp Docstring V skratke. Používa sa na popis funkčnosti funkcie. Použitie docstring vo funkciách je voliteľné, ale považuje sa to za osvedčený postup.
Na vytlačenie dokumentačného reťazca funkcie možno použiť nižšie uvedenú syntax.
Syntax: print(function_name.__doc__)>
Príklad: Pridanie Docstring do funkcie
10 ml až ozPython3
# 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ýkon:
Function to check if the number is even or odd>
Funkcia Pythonu v rámci funkcií
Funkcia, ktorá je definovaná v inej funkcii, je známa ako vnútorná funkcia alebo vnorená funkcia . Vnorené funkcie môžu pristupovať k premenným v rámci rozsahu. Vnútorné funkcie slúžia na to, aby mohli byť chránené pred všetkým, čo sa deje mimo funkcie.
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ýkon:
I love techcodeview.com>
Anonymné funkcie v Pythone
V Pythone, an anonymná funkcia znamená, že funkcia je bez názvu. Ako už vieme, kľúčové slovo def sa používa na definovanie normálnych funkcií a kľúčové slovo lambda sa používa na vytváranie anonymných funkcií.
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ýkon:
343 343>
Rekurzívne funkcie v Pythone
Rekurzia v Pythone označuje, keď funkcia volá sama seba. Existuje veľa prípadov, keď musíte na vyriešenie vytvoriť rekurzívnu funkciu Matematické a rekurzívne problémy.
Použitie rekurzívnej funkcie by sa malo vykonávať opatrne, pretože rekurzívna funkcia sa môže stať neukončenou slučkou. Pri vytváraní rekurzívnej funkcie je lepšie skontrolovať príkaz ukončenia.
Python3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Výkon
24>
Tu sme vytvorili rekurzívnu funkciu na výpočet faktoriálu čísla. Môžete vidieť, že koncový príkaz pre túto funkciu je, keď sa n rovná 0.
Návratový príkaz vo funkcii Python
Príkaz návratu funkcie sa používa na ukončenie funkcie a návrat k volajúcemu funkcie a vrátenie zadanej hodnoty alebo údajovej položky volajúcemu. Syntax príkazu return je:
return [expression_list]>
Príkaz return môže pozostávať z premennej, výrazu alebo konštanty, ktorá sa vráti na konci vykonávania funkcie. Ak sa v príkaze return nenachádza nič z vyššie uvedeného, vráti sa objekt None.
Príklad: Príkaz návratu funkcie 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ýkon:
maven nainštalovať
4 16>
Pass by Reference and Pass by Value
Jedna dôležitá vec, ktorú treba poznamenať, je, že v Pythone je každý názov premennej referenciou. Keď odovzdáme premennú funkcii Python, vytvorí sa nový odkaz na objekt. Odovzdávanie parametrov v Pythone je rovnaké ako odovzdávanie referencií v Jave.
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ýkon:
[20, 11, 12, 13, 14, 15]>
Keď odovzdáme referenciu a zmeníme prijatú referenciu na niečo iné, spojenie medzi odovzdanými a prijatými parametrami sa preruší. Zvážte napríklad nasledujúci 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ýkon:
[10, 11, 12, 13, 14, 15]>
Ďalší príklad demonštruje, že referenčný odkaz sa preruší, ak priradíme novú hodnotu (vo vnútri funkcie).
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ýkon:
10>
Cvičenie: Skúste uhádnuť výstup nasledujúceho 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ýkon:
2 3>
Rýchle odkazy
- Kvíz o funkciách Pythonu
- Rozdiel medzi metódou a funkciou v Pythone
- Funkcie prvej triedy v Pythone
- Nedávne články o funkciách Pythonu .
Časté otázky – Funkcie Pythonu
Q1. Čo je funkcia v Pythone?
Funkcia Python je blok kódu, ktorý sa spúšťa iba vtedy, keď je zavolaný. Je naprogramovaný tak, aby vrátil konkrétnu úlohu. Hodnoty môžete odovzdať vo funkciách nazývaných parametre. Pomáha pri vykonávaní opakujúcich sa úloh.
Q2. Aké sú 4 typy funkcií v Pythone?
Hlavné typy funkcií v Pythone sú:
- Vstavaná funkcia
- Funkcia definovaná používateľom
- Lambda funkcie
- Rekurzívne funkcie
Q3. H ako napísať funkciu v Pythone ?
Ak chcete napísať funkciu v Pythone, môžete použiť kľúčové slovo def a potom napísať názov funkcie. Po použití môžete zadať kód funkcie ':'. Základná syntax na definovanie funkcie je:
def názov_funkcie():
#vyhlásenie
Q4. Aké sú parametre funkcie v Pythone?
Parametre v Pythone sú premenné, ktoré berú hodnoty odovzdané ako argumenty pri volaní funkcií. Funkcia môže mať ľubovoľný počet parametrov. Môžete tiež nastaviť predvolenú hodnotu parametra v Pythone.