logo

Python funkcijos

Python funkcijos yra teiginių, grąžinančių konkrečią užduotį, blokas. Idėja yra sujungti kai kurias dažnai ar pakartotinai atliekamas užduotis ir sukurti funkciją, kad užuot vėl ir vėl rašius tą patį kodą skirtingoms įvestims, galėtume atlikti funkcijų iškvietimus, kad pakartotinai panaudotume jame esantį kodą.

Kai kurie Funkcijų naudojimo pranašumai



  • Padidinkite kodo skaitomumą
  • Padidinkite kodo pakartotinį naudojimą

Python funkcijos deklaracija

Funkcijos deklaravimo sintaksė yra tokia:

Python funkcijos

Python funkcijos deklaracijos sintaksė

Python funkcijų tipai

Žemiau pateikiami įvairių tipų funkcijos Python :



  • Integruota bibliotekos funkcija: Šitie yra Standartinės funkcijos Python, kuriuos galima naudoti.
  • Vartotojo nustatyta funkcija: Galime sukurti savo funkcijas pagal savo poreikius.

Funkcijos kūrimas Python

Mes galime apibrėžti funkciją Python, naudodami def raktažodį. Mes galime pridėti bet kokių funkcijų ir savybių, kaip mums reikia. Pagal šį pavyzdį galime suprasti, kaip parašyti funkciją Python. Tokiu būdu galime sukurti Python funkcijos apibrėžimą naudodami def raktinį žodį.

Python3
# A simple Python function def fun(): print('Welcome to GFG')>

Funkcijos iškvietimas Python

Sukūrę funkciją Python, galime ją iškviesti naudodami funkcijų pavadinimus Python ir skliausteliuose, kuriuose yra tos konkrečios funkcijos parametrai. Žemiau pateikiamas def funkcijos Python iškvietimo pavyzdys.

Python3
# A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()>

Išvestis:



pyspark pamoka
Welcome to GFG>

Python funkcija su parametrais

Jei turite patirties su C/C++ arba Java, tuomet turėtumėte pagalvoti apie grąžinimo tipas funkcijos ir duomenų tipas argumentų. Tai įmanoma ir Python (ypač Python 3.5 ir naujesnėms versijoms).

Python funkcijos sintaksė su parametrais

 def function_name(parameter: data_type) ->return_type: '''Docstring''' # funkcijos return išraiškos turinys>

Toliau pateikiamas naudojimo pavyzdys argumentai ir parametrai kuriuos sužinosite vėliau šiame straipsnyje, kad galėtumėte grįžti prie jo dar kartą, jei nesuprastumėte.

Python3
def add(num1: int, num2: int) ->int: '''Pridėti du skaičius''' num3 = skaičius1 + skaičius2 return num3 # Tvarkyklės kodas num1, num2 = 5, 15 ans = add(num1, num2) print(f'Pridėjimas {num1} ir {num2} rezultatai {ans}.')>

Išvestis:

The addition of 5 and 15 results 20.>

Pastaba: Šie pavyzdžiai yra apibrėžti naudojant 1 sintaksę. Praktiškai pabandykite juos konvertuoti į 2 sintaksę.

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

Išvestis:

False True>

Python funkcijos argumentai

Argumentai yra reikšmės, perduodamos funkcijos skliausteliuose. Funkcija gali turėti bet kokį skaičių argumentų, atskirtų kableliu.

Šiame pavyzdyje mes sukursime paprastą funkciją Python, kad patikrintume, ar skaičius, perduotas kaip funkcijos argumentas, yra lyginis ar nelyginis.

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

Išvestis:

even odd>

Python funkcijos argumentų tipai

Python palaiko įvairių tipų argumentus, kuriuos galima perduoti funkcijos iškvietimo metu. „Python“ sistemoje „Python“ turime šiuos funkcijų argumentų tipus:

  • Numatytasis argumentas
  • Raktinio žodžio argumentai (pavadinti argumentai)
  • Poziciniai argumentai
  • Savavališki argumentai (kintamo ilgio argumentai *args ir **kwargs)

Išsamiai aptarkime kiekvieną tipą.

Numatytieji argumentai

A numatytasis argumentas yra parametras, kuris prisiima numatytąją reikšmę, jei to argumento funkcijos kvietime reikšmė nepateikiama. Šis pavyzdys iliustruoja numatytuosius argumentus funkcijoms rašyti 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)>

Išvestis:

x: 10 y: 50>

Kaip ir numatytieji C++ argumentai, bet koks funkcijos argumentų skaičius gali turėti numatytąją reikšmę. Tačiau kai turime numatytąjį argumentą, visi jo dešinėje esantys argumentai taip pat turi turėti numatytąsias reikšmes.

Raktažodžių argumentai

Idėja yra leisti skambinančiajam nurodyti argumento pavadinimą su reikšmėmis, kad skambinančiajam nereikėtų atsiminti parametrų eilės.

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

Išvestis:

Geeks Practice Geeks Practice>

Poziciniai argumentai

Mes panaudojome Pozicijos argumentas funkcijos iškvietimo metu, kad pirmasis argumentas (arba reikšmė) būtų priskirtas pavadinimui, o antrasis argumentas (arba reikšmė) – amžiui. Pakeitus poziciją arba pamiršus pozicijų tvarką, reikšmės gali būti naudojamos netinkamose vietose, kaip parodyta toliau pateiktame 2 atvejo pavyzdyje, kur vardui priskiriami 27, o amžiui – 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')>

Išvestis:

  Case-1:  Hi, I am Suraj My age is 27   Case-2:  Hi, I am 27 My age is Suraj>

Savavališki raktinių žodžių argumentai

„Python“ savavališkuose raktinių žodžių argumentuose, *args ir **kwargs gali perduoti kintamą argumentų skaičių funkcijai naudodamas specialius simbolius. Yra du specialūs simboliai:

  • *Args Python (ne raktinio žodžio argumentai)
  • **kwargs Python (raktinių žodžių argumentai)

1 pavyzdys: Kintamo ilgio ne raktinių žodžių argumentas

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

Išvestis:

Hello Welcome to techcodeview.com>

2 pavyzdys: Kintamo ilgio raktinių žodžių argumentai

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

Išvestis:

first == Geeks mid == for last == Geeks>

Dokumentų eilutė

Pirmoji eilutė po funkcijos vadinama dokumento eilute arba Dokumentų eilutė trumpai tariant. Tai naudojama funkcijos funkcionalumui apibūdinti. Dokumentų eilutės naudojimas funkcijose yra neprivalomas, tačiau tai laikoma gera praktika.

Toliau pateikta sintaksė gali būti naudojama funkcijos dokumentų eilutei išspausdinti.

  Syntax:   print(function_name.__doc__)>

Pavyzdys: Docsstring pridėjimas prie funkcijos

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

Išvestis:

Function to check if the number is even or odd>

Python funkcija funkcijose

Funkcija, apibrėžta kitoje funkcijoje, yra žinoma kaip vidinė funkcija arba įdėta funkcija . Įdėtos funkcijos gali pasiekti apimančios apimties kintamuosius. Vidinės funkcijos naudojamos tam, kad jas būtų galima apsaugoti nuo visko, kas vyksta už funkcijos ribų.

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

Išvestis:

I love techcodeview.com>

Anoniminės funkcijos Python

Python, an anoniminė funkcija reiškia, kad funkcija yra be pavadinimo. Kaip jau žinome, raktinis žodis def naudojamas įprastoms funkcijoms apibrėžti, o raktinis žodis lambda naudojamas anoniminėms funkcijoms kurti.

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

Išvestis:

kaip ištrinti stulpelį postgresql
343 343>

Rekursinės funkcijos Python

Rekursija Python kalba reiškia, kai funkcija iškviečia save. Yra daug atvejų, kai norint išspręsti reikia sukurti rekursinę funkciją Matematinės ir rekursinės problemos.

Rekursyvinę funkciją reikia naudoti atsargiai, nes rekursinė funkcija gali tapti kaip nesibaigianti kilpa. Kuriant rekursinę funkciją, geriau patikrinti išėjimo teiginį.

Python3
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>

Išvestis

24>

Čia sukūrėme rekursinę funkciją skaičiaus faktoriui apskaičiuoti. Galite matyti šios funkcijos pabaigos teiginį, kai n yra lygus 0.

Grąžinimo pareiškimas Python funkcijoje

Funkcijos return sakinys naudojamas išeiti iš funkcijos ir grįžti į funkcijos skambinantįjį bei grąžinti nurodytą reikšmę arba duomenų elementą skambinančiajam. Grįžimo teiginio sintaksė yra tokia:

return [expression_list]>

Grįžimo sakinį gali sudaryti kintamasis, išraiška arba konstanta, kuri grąžinama funkcijos vykdymo pabaigoje. Jei grąžinimo sakinyje nėra nė vieno iš aukščiau paminėtų dalykų, grąžinamas objektas None.

Pavyzdys: Python funkcijos grąžinimo pareiškimas

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

Išvestis:

4 16>

Praeiti pagal nuorodą ir praleisti vertę

Svarbu atkreipti dėmesį į tai, kad Python kiekvienas kintamojo pavadinimas yra nuoroda. Kai perduodame kintamąjį funkcijai Python, sukuriama nauja nuoroda į objektą. Parametrų perdavimas Python yra toks pat kaip nuorodų perdavimas 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)>

Išvestis:

[20, 11, 12, 13, 14, 15]>

Kai perduodame nuorodą ir pakeičiame gautą nuorodą į ką nors kita, ryšys tarp perduodamų ir gautų parametrų nutrūksta. Pavyzdžiui, apsvarstykite toliau pateiktą programą taip:

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

Išvestis:

[10, 11, 12, 13, 14, 15]>

Kitas pavyzdys rodo, kad nuorodos nuoroda nutrūksta, jei priskiriame naują reikšmę (funkcijos viduje).

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

Išvestis:

java žemėlapis
10>

Pratimas: Pabandykite atspėti šio kodo išvestį.

Python3
def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>

Išvestis:

2 3>

Greitos nuorodos

  • Viktorina apie Python funkcijas
  • Skirtumas tarp metodo ir funkcijos Python
  • Pirmos klasės funkcijos Python
  • Naujausi straipsniai apie Python funkcijas .

DUK – Python funkcijos

Q1. Kas yra funkcija Python?

Python funkcija yra kodo blokas, kuris veikia tik tada, kai jis iškviečiamas. Jis užprogramuotas grąžinti konkrečią užduotį. Galite perduoti reikšmes funkcijose, vadinamose parametrais. Tai padeda atlikti pasikartojančias užduotis.

Q2. Kokie yra 4 Python funkcijų tipai?

Pagrindiniai Python funkcijų tipai yra šie:

  • Integruota funkcija
  • Vartotojo nustatyta funkcija
  • Lambda funkcijos
  • Rekursinės funkcijos

Q3. H kaip parašyti funkciją Python ?

Norėdami parašyti funkciją Python, galite naudoti def raktinį žodį ir tada parašyti funkcijos pavadinimą. Po naudojimo galite pateikti funkcijos kodą ':'. Pagrindinė funkcijos apibrėžimo sintaksė yra:

def function_name():

#pareiškimas

4 klausimas. Kokie yra Python funkcijos parametrai?

Python parametrai yra kintamieji, kurie perduodamas reikšmes kaip argumentus priima iškviečiant funkcijas. Funkcija gali turėti bet kokį skaičių parametrų. Taip pat galite nustatyti numatytąją reikšmę Python parametrui.