Forum IT Moldova

Notificări
Șterge tot

Funcții în Python


Daniela
Postări: 187
Topic starter
(@daniela)
Membru
S-a alăturat: 3 ani în urmă

Funcții în Python

 

O funcție este un bloc de cod care rulează numai atunci când este apelat.

Puteți trece date, cunoscute sub numele de parametri, într-o funcție.

O funcție poate returna datele ca urmare.

Crearea unei funcții

În Python, o funcție este definită folosind cuvântul cheie def :

Exemplu

def my_function():
  print("Hello from a function")

Apelarea unei funcții

Pentru a apela o funcție, utilizați numele funcției urmată de paranteză:

Exemplu

def my_function():
  print("Hello from a function")

my_function()

Argumente

Informațiile pot fi transmise în funcții ca argumente.

Argumentele sunt specificate după numele funcției, în interiorul parantezelor. Puteți adăuga oricâte argumente doriți, doar separați-le cu virgulă.

Următorul exemplu are o funcție cu un singur argument (fname). Când funcția este numită, trecem de-a lungul unui nume, care este utilizat în interiorul funcției pentru a tipări numele complet:

Exemplu

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

Argumentele sunt adesea scurtate la arg în documentațiile Python.

Parametri sau argumente?

Termenii parametru și argument pot fi folosiți pentru același lucru: informații transmise într-o funcție.

Din perspectiva unei funcții:

Un parametru este variabila listată în paranteze în definiția funcției.

Un argument este valoarea care este trimisă funcției atunci când este apelată.

Număr de argumente

În mod implicit, o funcție trebuie să fie apelată cu numărul corect de argumente. În sensul că, dacă funcția dvs. așteaptă 2 argumente, trebuie să apelați funcția cu 2 argumente, nu mai mult și nu mai puțin.

Exemplu

Această funcție așteaptă 2 argumente și primește 2 argumente:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil""Refsnes")

Dacă încercați să apelați funcția cu 1 sau 3 argumente, veți primi o eroare:

Exemplu

Această funcție așteaptă 2 argumente, dar primește doar 1:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil")

Argumente arbitrale, * args

Dacă nu știți câte argumente care vor fi transmise în funcția dvs., adăugați un *nume înainte de parametru în definiția funcției.

Astfel , funcția va primi un tuplu de argumente, și pot avea acces la elementele în consecință:

Exemplu

Dacă numărul de argumente este necunoscut, adăugați o *înainte de numele parametrului:

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Emil""Tobias""Linus")

Argumentele arbitrale sunt adesea scurtate la * arg în documentațiile Python.

Argumente cuvinte cheie

Puteți trimite, de asemenea, argumente cu sintaxa cheie = valoare .

În acest fel ordinea argumentelor nu contează.

Exemplu

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

Fraza Argumentele cuvinte cheie sunt adesea prescurtat kwargs în documentații Python.

Argumente cu cuvinte cheie arbitrale, ** kwargs

Dacă nu știți câte argumente de cuvinte cheie care vor fi transmise în funcția dvs., adăugați două asterisk: **înainte de numele parametrului din definiția funcției.

Astfel funcția va primi un dicționar de argumente și poate accesa elementele în consecință:

Exemplu

Dacă numărul de argumente de cuvinte cheie nu este cunoscut, adăugați o dublă **înainte de numele parametrului:

def my_function(**kid):
  print("His last name is " + kid["lname"])

my_function(fname = "Tobias", lname = "Refsnes")

Argumentele Kword arbitrale sunt adesea scurtate la ** kwargs în documentațiile Python.

Valoarea implicită a parametrilor

Următorul exemplu arată cum se utilizează o valoare a parametrului implicit.

Dacă apelăm funcția fără argument, aceasta folosește valoarea implicită:

Exemplu

def my_function(country = "Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Trecerea unei liste ca argument

Puteți trimite orice tip de date de argumente unei funcții (șir, număr, listă, dicționar etc.), iar acesta va fi tratat ca același tip de date în interiorul funcției.

De exemplu, dacă trimiteți o listă ca argument, aceasta va rămâne o listă când va atinge funcția:

Exemplu

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple""banana""cherry"]

my_function(fruits)

Valori de retur

Pentru a permite unei funcții să returneze o valoare, utilizați return instrucțiunea:

Exemplu

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

Declarația de trecere

functiondefinițiile nu pot fi goale, dar dacă, din anumite motive, aveți o functiondefiniție fără conținut, introduceți passinstrucțiunea pentru a evita să primiți o eroare.

Exemplu

def myfunction():
  pass

Recursivitate

Python acceptă, de asemenea, recurenta funcției, ceea ce înseamnă că o funcție definită se poate numi singură.

Recursiunea este un concept comun matematic și de programare. Înseamnă că o funcție se numește. Aceasta are beneficiul de a însemna că puteți bucla prin date pentru a ajunge la un rezultat.

Dezvoltatorul ar trebui să fie foarte atent cu recursivitatea, deoarece poate fi destul de ușor să alunecați la scrierea unei funcții care nu se termină niciodată sau care utilizează cantități excesive de memorie sau putere a procesorului. Cu toate acestea, atunci când scrierea corectă, recursiunea poate fi o abordare foarte eficientă și elegantă din punct de vedere matematic al programării.

În acest exemplu, tri_recursion () este o funcție pe care am definit-o să o numim singură ("recurse"). Folosim variabila k ca date, care scade ( -1 ) de fiecare dată când facem recurs. Recursul se încheie când condiția nu este mai mare de 0 (adică atunci când este 0).

Pentru un nou dezvoltator poate dura ceva timp pentru a afla cum funcționează exact acest lucru, cea mai bună metodă de a afla este testând și modificând-o.

Exemplu

Exemplu de recurs

def tri_recursion(k):
  if(k > 0):
    result = k + tri_recursion(k - 1)
    print(result)
  else:
    result = 0
  return result

print("\n\nRecursion Example Results")
tri_recursion(6)
Distribuie: