Python funkcijas ir paziņojumu bloks, kas atgriež konkrēto uzdevumu. Ideja ir apvienot dažus bieži vai atkārtoti veiktus uzdevumus un izveidot funkciju, lai tā vietā, lai atkal un atkal rakstītu vienu un to pašu kodu dažādām ievadēm, mēs varētu veikt funkciju izsaukumus, lai atkal un atkal izmantotu tajā ietverto kodu.
Dažas Funkciju izmantošanas priekšrocības
- Palieliniet koda lasāmību
- Palieliniet koda atkārtotu izmantošanu
Python funkciju deklarācija
Funkcijas deklarēšanas sintakse ir:

Python funkciju deklarācijas sintakse
Python funkciju veidi
Tālāk ir norādīti dažādi funkciju veidi Python :
atjauniniet SQL ar pievienošanos
- Iebūvēta bibliotēkas funkcija: Šie ir Standarta funkcijas Python, kas ir pieejami lietošanai.
- Lietotāja definēta funkcija: Mēs varam izveidot savas funkcijas, pamatojoties uz mūsu prasībām.
Funkcijas izveide programmā Python
Mēs varam definēt funkciju Python, izmantojot def atslēgvārds. Mēs varam tai pievienot jebkāda veida funkcionalitāti un rekvizītus pēc vajadzības. Izmantojot šo piemēru, mēs varam saprast, kā Python rakstīt funkciju. Tādā veidā mēs varam izveidot Python funkcijas definīciju, izmantojot def atslēgvārdu.
Python3 # A simple Python function def fun(): print('Welcome to GFG')> Funkcijas izsaukšana programmā Python
Pēc funkcijas izveides programmā Python mēs to varam izsaukt, izmantojot funkciju nosaukumus Python, kam seko iekavas, kas satur šīs konkrētās funkcijas parametrus. Zemāk ir piemērs def funkcijas Python izsaukšanai.
Python3 # A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()> Izvade:
Welcome to GFG>
Python funkcija ar parametriem
Ja jums ir pieredze darbā ar C/C++ vai Java, tad noteikti jādomā par atgriešanas veids par funkciju un datu tips no argumentiem. Tas ir iespējams arī Python (īpaši Python 3.5 un jaunākām versijām).
Python funkciju sintakse ar parametriem
def function_name(parameter: data_type) ->return_type: '''Docstring''' # funkcijas atgriešanas izteiksmes pamatteksts>
Tālāk sniegtais lietojuma piemērs argumenti un parametri ko jūs uzzināsiet vēlāk šajā rakstā, lai jūs varētu atgriezties pie tā vēlreiz, ja jūs to nesaprotat.
Python3 def add(num1: int, num2: int) ->int: '''Pievienot divus skaitļus''' num3 = num1 + num2 return num3 # Draivera kods num1, num2 = 5, 15 ans = add(num1, num2) print(f'The pievienošana {num1} un {num2} rezultāti {ans}.')> Izvade:
The addition of 5 and 15 results 20.>
Python3Piezīme: Tālāk minētie piemēri ir definēti, izmantojot 1. sintaksi, praksei mēģiniet tos pārvērst 2. sintaksi.
# 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))>
Izvade:
False True>
Python funkciju argumenti
Argumenti ir vērtības, kas nodotas funkcijas iekavās. Funkcijai var būt jebkurš argumentu skaits, kas atdalīti ar komatu.
Šajā piemērā mēs izveidosim vienkāršu funkciju Python, lai pārbaudītu, vai skaitlis, kas tiek nodots kā arguments funkcijai, ir pāra vai nepāra.
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)> Izvade:
even odd>
Python funkciju argumentu veidi
Python atbalsta dažāda veida argumentus, kurus var nodot funkcijas izsaukšanas laikā. Programmā Python mums ir šādi funkciju argumentu veidi Python:
- Noklusējuma arguments
- Atslēgvārdu argumenti (nosauktie argumenti)
- Pozicionālie argumenti
- Patvaļīgi argumenti (mainīga garuma argumenti *args un **kwargs)
Sīkāk apspriedīsim katru veidu.
Noklusējuma argumenti
A noklusējuma arguments ir parametrs, kas pieņem noklusējuma vērtību, ja šī argumenta funkcijas izsaukumā vērtība nav norādīta. Šis piemērs ilustrē noklusējuma argumentus funkciju rakstīšanai programmā Python.
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)> Izvade:
x: 10 y: 50>
Tāpat kā C++ noklusējuma argumentiem, jebkuram argumentu skaitam funkcijā var būt noklusējuma vērtība. Bet, tiklīdz mums ir noklusējuma arguments, visiem argumentiem pa labi ir jābūt arī noklusējuma vērtībām.
Atslēgvārdu argumenti
Ideja ir ļaut zvanītājam norādīt argumenta nosaukumu ar vērtībām, lai zvanītājam nebūtu jāatceras parametru secība.
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')>
Izvade:
Geeks Practice Geeks Practice>
Pozicionālie argumenti
Mēs izmantojām Pozīcijas arguments funkcijas izsaukšanas laikā, lai pirmais arguments (vai vērtība) tiktu piešķirts nosaukumam, bet otrais arguments (vai vērtība) tiktu piešķirts vecumam. Mainot pozīciju vai aizmirstot pozīciju secību, vērtības var tikt izmantotas nepareizās vietās, kā parādīts zemāk esošajā 2. gadījuma piemērā, kur vārdam ir piešķirts 27, bet vecumam – Suraj.
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')> Izvade:
Case-1: Hi, I am Suraj My age is 27 Case-2: Hi, I am 27 My age is Suraj>
Patvaļīgi atslēgvārdu argumenti
Python patvaļīgajos atslēgvārdu argumentos, *args un **kwargs var nodot mainīgu argumentu skaitu funkcijai, izmantojot īpašus simbolus. Ir divi īpašie simboli:
- *args programmā Python (ar atslēgvārdiem nesaistīti argumenti)
- **kwargs programmā Python (atslēgvārdu argumenti)
1. piemērs: Mainīga garuma arguments, kas nav atslēgvārdi
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')> Izvade:
Hello Welcome to techcodeview.com>
2. piemērs: Mainīga garuma atslēgvārdu argumenti
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')> Izvade:
first == Geeks mid == for last == Geeks>
Docstring
Pirmo virkni pēc funkcijas sauc par dokumenta virkni vai Docstring Īsumā. To izmanto, lai aprakstītu funkcijas funkcionalitāti. Docstring izmantošana funkcijās nav obligāta, taču tā tiek uzskatīta par labu praksi.
Tālāk norādīto sintaksi var izmantot, lai izdrukātu funkcijas dokumentācijas virkni.
Syntax: print(function_name.__doc__)>
Piemērs: Docsstring pievienošana funkcijai
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__)> Izvade:
Function to check if the number is even or odd>
Python funkcija funkcijās
Funkciju, kas ir definēta citā funkcijā, sauc par iekšējā funkcija vai ligzdota funkcija . Ligzdotas funkcijas var piekļūt aptverošā tvēruma mainīgajiem. Iekšējās funkcijas tiek izmantotas, lai tās varētu pasargāt no visa, kas notiek ārpus funkcijas.
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()>
Izvade:
I love techcodeview.com>
Anonīmas funkcijas Python
Programmā Python an anonīma funkcija nozīmē, ka funkcijai nav nosaukuma. Kā mēs jau zinām, atslēgvārdu def izmanto, lai definētu parastās funkcijas, un atslēgvārdu lambda izmanto, lai izveidotu anonīmas funkcijas.
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))>
Izvade:
343 343>
Rekursīvās funkcijas Python
Rekursija programmā Python attiecas uz gadījumiem, kad funkcija izsauc sevi. Ir daudz gadījumu, kad jums ir jāizveido rekursīva funkcija, lai atrisinātu Matemātiskās un rekursīvās problēmas.
Rekursīvās funkcijas lietošana ir jāveic piesardzīgi, jo rekursīvā funkcija var kļūt kā nebeidzama cilpa. Veidojot rekursīvo funkciju, labāk ir pārbaudīt izejas paziņojumu.
Python3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Izvade
24>
Šeit mēs esam izveidojuši rekursīvu funkciju, lai aprēķinātu skaitļa faktoriālu. Jūs varat redzēt šīs funkcijas beigu paziņojumu, kad n ir vienāds ar 0.
Atgriešanas paziņojums Python funkcijā
Funkcijas atgriešanas priekšraksts tiek izmantots, lai izietu no funkcijas un atgrieztos pie funkcijas izsaucēja un atgrieztu norādīto vērtību vai datu vienumu izsaucējam. Atgriešanās priekšraksta sintakse ir šāda:
return [expression_list]>
Atgriešanas paziņojums var sastāvēt no mainīgā, izteiksmes vai konstantes, kas tiek atgriezta funkcijas izpildes beigās. Ja neviens no iepriekš minētajiem nav iekļauts atgriešanas paziņojumā, tiek atgriezts objekts None.
Piemērs: Python funkcijas atgriešanas paziņojums
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))>
Izvade:
4 16>
Iet pēc atsauces un Pass by Value
Viena svarīga lieta ir tā, ka Python katrs mainīgā nosaukums ir atsauce. Nododot mainīgo funkcijai Python, tiek izveidota jauna atsauce uz objektu. Parametru nodošana Python ir tāda pati kā atsauces nodošana Java.
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)>
Izvade:
[20, 11, 12, 13, 14, 15]>
Kad mēs nododam atsauci un mainām saņemto atsauci uz kaut ko citu, savienojums starp nodotajiem un saņemtajiem parametriem tiek pārtraukts. Piemēram, apsveriet tālāk norādīto programmu šādi:
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)>
Izvade:
[10, 11, 12, 13, 14, 15]>
Cits piemērs parāda, ka atsauces saite tiek pārtraukta, ja mēs piešķiram jaunu vērtību (funkcijas iekšpusē).
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)>
Izvade:
10>
Vingrinājums: Mēģiniet uzminēt šāda koda izvadi.
Python3 def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>
Izvade:
2 3>
Ātrās saites
- Viktorīna par Python funkcijām
- Atšķirība starp metodi un funkciju Python
- Pirmās klases funkcijas Python
- Jaunākie raksti par Python funkcijām .
FAQ — Python funkcijas
Q1. Kas ir funkcija Python?
Python funkcija ir koda bloks, kas darbojas tikai tad, kad tiek izsaukts. Tas ir ieprogrammēts, lai atgrieztu konkrēto uzdevumu. Varat nodot vērtības funkcijās, ko sauc par parametriem. Tas palīdz veikt atkārtotus uzdevumus.
Q2. Kādi ir 4 Python funkciju veidi?
Galvenie Python funkciju veidi ir:
- Iebūvēta funkcija
- Lietotāja definēta funkcija
- Lambda funkcijas
- Rekursīvās funkcijas
Q3. H kā rakstīt funkciju Python ?
Lai rakstītu funkciju Python, varat izmantot def atslēgvārdu un pēc tam ierakstīt funkcijas nosaukumu. Pēc lietošanas varat norādīt funkcijas kodu ':'. Funkcijas definēšanas pamata sintakse ir:
def function_name():
#paziņojums, apgalvojums
Q4. Kādi ir Python funkcijas parametri?
Python parametri ir mainīgie, kas, izsaucot funkcijas, izmanto nodotās vērtības kā argumentus. Funkcijai var būt jebkurš parametru skaits. Varat arī iestatīt noklusējuma vērtību parametram Python.