logo

Funkce Pythonu

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:



Funkce Pythonu

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.>

Pozná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
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))>

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 java

def 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.