Operatorul return și returnarea rezultatului din funcție
Returnarea rezultatului
O funcție poate returna un rezultat. Pentru aceasta, în funcție se folosește operatorul return, după care se specifică valoarea returnată:
def nume_funcție([parametri]):
instrucțiuni
return valoare_returnată
Să definim o funcție simplă care returnează o valoare:
def obține_mesaj():
return "Salut www.fabricadecoduri.com"
Aici, după operatorul return, se află șirul "Salut www.fabricadecoduri.com" - aceasta este valoarea pe care o va returna funcția obține_mesaj().
Apoi, acest rezultat al funcției poate fi atribuit unei variabile sau folosit ca valoare obișnuită:
def obține_mesaj():
return "Salut www.fabricadecoduri.com"
mesaj = obține_mesaj() # obținem rezultatul funcției obține_mesaj în variabila mesaj
print(mesaj) # Salut www.fabricadecoduri.com
# putem transmite direct rezultatul funcției obține_mesaj
print(obține_mesaj()) # Salut www.fabricaedcoduri.com
După operatorul return poate urma și o expresie complexă, al cărei rezultat va fi returnat din funcție. De exemplu, să definim o funcție care înmulțește un număr cu doi:
def dublează(număr):
return 2 * număr
Aici, funcția dublează va returna rezultatul expresiei 2 * număr:
def dublează(număr):
return 2 * număr
rezultat1 = dublează(4) # rezultat1 = 8
rezultat2 = dublează(5) # rezultat2 = 10
print(f"rezultat1 = {rezultat1}") # rezultat1 = 8
print(f"rezultat2 = {rezultat2}") # rezultat2 = 10
Sau un alt exemplu - obținerea sumei numerelor:
def sumă(a, b):
return a + b
rezultat = sumă(4, 6) # rezultat = 10
print(f"sumă(4, 6) = {rezultat}") # sumă(4, 6) = 10
print(f"sumă(3, 5) = {sumă(3, 5)}") # sumă(3, 5) = 8
Ieșirea din funcție
Operatorul return nu doar returnează o valoare, ci și produce ieșirea din funcție. De aceea, el trebuie definit după celelalte instrucțiuni. De exemplu:
def obține_mesaj():
return "Salut www.fabricadecoduri.com"
print("Sfârșitul funcției")
print(obține_mesaj())
Din punct de vedere sintactic, această funcție este corectă, însă instrucțiunea print("Sfârșitul funcției") nu are sens - nu va fi niciodată executată, deoarece operatorul return va returna valoarea și va produce ieșirea din funcție înainte de aceasta.
Cu toate acestea, putem folosi operatorul return și în funcții care nu returnează nici-o valoare. În acest caz, după operatorul return nu se specifică nicio valoare returnată. O situație tipică este să se producă ieșirea din funcție în funcție de anumite condiții:
def afișează_persoană(nume, vârstă):
dacă vârstă > 120 sau vârstă < 1:
print("Vârstă nevalidă")
return
print(f"Nume: {nume} Vârstă: {vârstă}")
afișează_persoană("Tom", 22)
afișează_persoană("Bob", -102)
Aici, funcția afișează_persoană primește ca parametri numele și vârsta utilizatorului. Cu toate acestea, în funcție verificăm mai întâi dacă vârsta se încadrează într-un anumit interval (mai mică de 120 și mai mare de 0). Dacă vârsta se află în afara acestui interval, afișăm un mesaj despre vârsta nevalidă și, folosind operatorul return, ieșim din funcție. După aceasta, funcția își încheie execuția.
Totuși, dacă vârsta este corectă, afișăm informațiile despre utilizator în consolă. Output-ul în consolă:
Nume: Tom Vârstă: 22
Vârstă nevalidă