logo

Python funkcijas

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 funkcijas

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

Piezīme: Tālāk minētie piemēri ir definēti, izmantojot 1. sintaksi, praksei mēģiniet tos pārvērst 2. sintaksi.

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

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.