logo

Funkcije Python

Funkcije Python je blok stavkov, ki vrnejo specifično nalogo. Ideja je združiti nekaj pogosto ali večkrat opravljenih nalog in narediti funkcijo, tako da lahko namesto pisanja iste kode znova in znova za različne vnose izvajamo klice funkcij za ponovno in znova uporabo kode, ki jo vsebuje.

nekaj Prednosti uporabe funkcij



  • Povečajte berljivost kode
  • Povečajte možnost ponovne uporabe kode

Deklaracija funkcije Python

Sintaksa za deklaracijo funkcije je:

Funkcije Python

Sintaksa deklaracije funkcije Python

Vrste funkcij v Pythonu

Spodaj so različne vrste funkcij v Python :



  • Vgrajena funkcija knjižnice: To so Standardne funkcije v Pythonu, ki so na voljo za uporabo.
  • Uporabniško določena funkcija: Ustvarimo lahko lastne funkcije glede na naše zahteve.

Ustvarjanje funkcije v Pythonu

V Pythonu lahko definiramo funkcijo z uporabo def ključna beseda. Po potrebi mu lahko dodamo poljubne vrste funkcionalnosti in lastnosti. Z naslednjim primerom lahko razumemo, kako napisati funkcijo v Pythonu. Na ta način lahko ustvarimo definicijo funkcije Python z uporabo ključne besede def.

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

Klicanje funkcije v Pythonu

Ko ustvarimo funkcijo v Pythonu, jo lahko pokličemo z uporabo imena funkcije Python, ki mu sledi oklepaj, ki vsebuje parametre te določene funkcije. Spodaj je primer klicanja def funkcije Python.

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

Izhod:



Welcome to GFG>

Funkcija Python s parametri

Če imate izkušnje s C/C++ ali Javo, potem zagotovo razmišljate o povratni tip funkcije in tip podatkov argumentov. To je mogoče tudi v Pythonu (posebej za Python 3.5 in novejše).

Sintaksa funkcije Python s parametri

 def function_name(parameter: data_type) ->return_type: '''Docstring''' # telo povratnega izraza funkcije>

Naslednji primer uporablja argumenti in parametri ki se ga boste naučili pozneje v tem članku, da se lahko k njemu znova vrnete, če ga ne razumete.

Python3
def add(num1: int, num2: int) ->int: '''Seštejte dve številki''' num3 = num1 + num2 return num3 # Koda voznika num1, num2 = 5, 15 ans = add(num1, num2) print(f'Dodatek {num1} in {num2} rezultati {ans}.')>

Izhod:

The addition of 5 and 15 results 20.>

Opomba: Naslednji primeri so definirani s sintakso 1, za vajo jih poskusite pretvoriti v sintakso 2.

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

Izhod:

False True>

Argumenti funkcije Python

Argumenti so vrednosti, posredovane znotraj oklepaja funkcije. Funkcija ima lahko poljubno število argumentov, ločenih z vejico.

V tem primeru bomo ustvarili preprosto funkcijo v Pythonu za preverjanje, ali je številka, posredovana kot argument funkciji, soda ali liha.

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

Izhod:

even odd>

Vrste argumentov funkcij Python

Python podpira različne vrste argumentov, ki jih je mogoče posredovati v času klica funkcije. V Pythonu imamo naslednje vrste funkcijskih argumentov v Pythonu:

  • Privzeti argument
  • Argumenti ključnih besed (poimenovani argumenti)
  • Pozicijski argumenti
  • Samovoljni argumenti (argumenti spremenljive dolžine *args in **kwargs)

O vsaki vrsti se podrobneje pogovorimo.

Privzeti argumenti

A privzeti argument je parameter, ki prevzame privzeto vrednost, če v funkcijskem klicu za ta argument ni navedena vrednost. Naslednji primer ponazarja privzete argumente za pisanje funkcij 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)>

Izhod:

x: 10 y: 50>

Tako kot privzeti argumenti C++ ima lahko poljubno število argumentov v funkciji privzeto vrednost. Ko pa imamo privzeti argument, morajo imeti tudi vsi argumenti na njegovi desni privzete vrednosti.

Argumenti ključnih besed

Ideja je omogočiti klicatelju, da določi ime argumenta z vrednostmi, tako da klicatelju ni treba zapomniti vrstnega reda 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')>

Izhod:

Geeks Practice Geeks Practice>

Pozicijski argumenti

Uporabili smo Argument položaja med klicem funkcije, tako da je prvi argument (ali vrednost) dodeljen imenu, drugi argument (ali vrednost) pa starosti. Če spremenite položaj ali če pozabite vrstni red položajev, se lahko vrednosti uporabijo na napačnih mestih, kot je prikazano v primeru 2 spodaj, kjer je 27 dodeljeno imenu, Suraj pa je dodeljen starosti.

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

Izhod:

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

Argumenti poljubne ključne besede

V argumentih poljubnih ključnih besed Python, *args in **kwargs lahko posreduje spremenljivo število argumentov funkciji z uporabo posebnih simbolov. Obstajata dva posebna simbola:

  • *args v Pythonu (argumenti, ki niso ključne besede)
  • **kwargs v Pythonu (argumenti ključnih besed)

Primer 1: Argument neključnih besed spremenljive dolžine

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

Izhod:

Hello Welcome to techcodeview.com>

Primer 2: Argumenti ključnih besed spremenljive dolžine

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

Izhod:

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

Docstring

Prvi niz za funkcijo se imenuje Niz dokumenta oz Docstring v kratkem. To se uporablja za opis funkcionalnosti funkcije. Uporaba niza dokumentov v funkcijah ni obvezna, vendar velja za dobro prakso.

Spodnjo sintakso lahko uporabite za tiskanje niza dokumenta funkcije.

  Syntax:   print(function_name.__doc__)>

primer: Dodajanje Docstring funkciji

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

Izhod:

Function to check if the number is even or odd>

Funkcija Python znotraj funkcij

Funkcija, ki je definirana znotraj druge funkcije, je znana kot notranja funkcija oz ugnezdena funkcija . Ugnezdene funkcije lahko dostopajo do spremenljivk obsega, ki ga zajema. Notranje funkcije se uporabljajo tako, da so lahko zaščitene pred vsem, kar se dogaja zunaj funkcije.

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

Izhod:

I love techcodeview.com>

Anonimne funkcije v Pythonu

V Pythonu je an anonimna funkcija pomeni, da je funkcija brez imena. Kot že vemo, se ključna beseda def uporablja za definiranje običajnih funkcij, ključna beseda lambda pa za ustvarjanje anonimnih funkcij.

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

Izhod:

343 343>

Rekurzivne funkcije v Pythonu

Rekurzija v Pythonu se nanaša na to, kdaj funkcija pokliče samo sebe. Obstaja veliko primerov, ko morate za rešitev zgraditi rekurzivno funkcijo Matematični in rekurzivni problemi.

Pri uporabi rekurzivne funkcije je treba biti previden, saj lahko rekurzivna funkcija postane podobna zanki brez zaključka. Bolje je, da med ustvarjanjem rekurzivne funkcije preverite svoj izhodni stavek.

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

Izhod

24>

Tukaj smo ustvarili rekurzivno funkcijo za izračun faktoriala števila. Vidite lahko, da je končni stavek za to funkcijo, ko je n enak 0.

Izjava o vrnitvi v funkciji Python

Izjava o vrnitvi funkcije se uporablja za izhod iz funkcije in vrnitev k klicatelju funkcije ter vrnitev podane vrednosti ali podatkovne postavke klicatelju. Sintaksa za stavek return je:

return [expression_list]>

Stavek vrnitve je lahko sestavljen iz spremenljivke, izraza ali konstante, ki se vrne na koncu izvajanja funkcije. Če nič od zgoraj navedenega ni prisotno s stavkom return, se vrne objekt None.

primer: Izjava o vrnitvi funkcije Python

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

Izhod:

4 16>

Predaj po sklicu in Predaj po vrednosti

Pomembno je omeniti, da je v Pythonu vsako ime spremenljivke referenca. Ko posredujemo spremenljivko funkciji Python, se ustvari nova referenca na objekt. Posredovanje parametrov v Pythonu je enako kot posredovanje sklicev v Javi.

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

Izhod:

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

Ko posredujemo referenco in prejeto referenco spremenimo v nekaj drugega, se povezava med posredovanimi in prejetimi parametri prekine. Na primer, upoštevajte spodnji program, kot sledi:

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

Izhod:

seznam v polje java
[10, 11, 12, 13, 14, 15]>

Drug primer dokazuje, da je referenčna povezava prekinjena, če dodelimo novo vrednost (znotraj funkcije).

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

Izhod:

10>

Vaja: Poskusite uganiti rezultat naslednje kode.

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

Izhod:

2 3>

hitre povezave

  • Kviz o funkcijah Python
  • Razlika med metodo in funkcijo v Pythonu
  • Prvorazredne funkcije v Pythonu
  • Nedavni članki o funkcijah Python .

Pogosta vprašanja – funkcije Python

Q1. Kaj je funkcija v Pythonu?

Funkcija Python je blok kode, ki se izvaja samo, ko je poklicana. Programiran je tako, da vrne določeno nalogo. Vrednosti lahko posredujete v funkcijah, imenovanih parametri. Pomaga pri opravljanju ponavljajočih se nalog.

Q2. Katere so 4 vrste funkcij v Pythonu?

Glavne vrste funkcij v Pythonu so:

  • Vgrajena funkcija
  • Uporabniško definirana funkcija
  • Lambda funkcije
  • Rekurzivne funkcije

Q3. H kako napisati funkcijo v Pythonu ?

Če želite napisati funkcijo v Pythonu, lahko uporabite ključno besedo def in nato napišete ime funkcije. Po uporabi lahko posredujete kodo funkcije ':'. Osnovna sintaksa za definiranje funkcije je:

def ime_funkcije():

#izjava

Q4. Kakšni so parametri funkcije v Pythonu?

Parametri v Pythonu so spremenljivke, ki sprejmejo vrednosti, posredovane kot argumente, ko kličejo funkcije. Funkcija ima lahko poljubno število parametrov. Prav tako lahko nastavite privzeto vrednost za parameter v Pythonu.