08: Funcții
Organizează codul în blocuri reutilizabile cu funcțiile Python.
Lecția 08 · Funcții¶
Ce vei învăța
- Cum definești și apelezi o funcție cu
def - Parametri și argumente
- Valoarea returnată cu
return - Domeniul de vizibilitate (scope): local vs global
- Parametri cu valori implicite
De ce funcții?¶
Fără funcții, dacă vrei să calculezi aria unui dreptunghi de trei ori, scrii codul de trei ori. Cu funcții, îl scrii o dată și îl apelezi de câte ori ai nevoie:
def aria_dreptunghi(lungime, latime):
return lungime * latime
print(aria_dreptunghi(4, 5)) # 20
print(aria_dreptunghi(10, 3)) # 30
print(aria_dreptunghi(7, 7)) # 49
Sintaxa de bază¶
Anatomia unei funcții¶
def calculeaza_medie(note): # 'note' este parametrul
suma = sum(note)
medie = suma / len(note)
return medie # valoarea returnată
rezultat = calculeaza_medie([8, 9, 7, 10])
print(rezultat) # 8.5
def— cuvântul cheie pentru definirea funcțieicalculeaza_medie— numele funcțieinote— parametrul (datele de intrare)return— trimite înapoi o valoare
Parametri și argumente¶
def prezinta(nume, varsta):
print(f"Mă numesc {nume} și am {varsta} ani.")
prezinta("Ana", 14) # Ana, 14
prezinta("Mihai", 16) # Mihai, 16
Argumente cu cuvânt cheie¶
Parametri cu valori implicite¶
def salut(nume, mesaj="Bună ziua"):
print(f"{mesaj}, {nume}!")
salut("Ana") # Bună ziua, Ana!
salut("Mihai", "Salut") # Salut, Mihai!
Funcții fără return¶
O funcție fără return returnează implicit None:
def afiseaza_titlu(text):
print("=" * len(text))
print(text)
print("=" * len(text))
afiseaza_titlu("Clasament")
# ===========
# Clasament
# ===========
Domeniul de vizibilitate (Scope)¶
Variabilele create în interiorul unei funcții sunt locale — nu există în afara ei:
Variabilele definite în afara oricărei funcții sunt globale:
nume = "Global" # variabilă globală
def afiseaza():
print(nume) # poate fi citită
afiseaza() # Global
Evită modificarea variabilelor globale din funcții
Modificarea variabilelor globale din funcții face codul greu de urmărit. Preferă să transmiți valorile ca parametri și să le returnezi.
Valori returnate multiple¶
Python poate returna mai multe valori simultan (ca un tuplu):
def min_max(lista):
return min(lista), max(lista)
minim, maxim = min_max([3, 7, 1, 9, 4])
print(minim) # 1
print(maxim) # 9
Exerciții¶
Exercițiu 1 — Funcție simplă¶
Scrie o funcție patrat(n) care returnează pătratul lui n.
Exercițiu 2 — Celsius la Fahrenheit¶
Scrie o funcție celsius_in_fahrenheit(c) care convertește temperatura.
Soluție
Exercițiu 3 — Validare¶
Scrie o funcție este_par(n) care returnează True dacă n este par, False altfel.
Mini-proiect: Generator de parole¶
Scrie o funcție care generează o parolă aleatorie din litere mari, mici și cifre.
import random
import string
def genereaza_parola(lungime=8):
caractere = string.ascii_letters + string.digits
parola = ""
for _ in range(lungime):
parola += random.choice(caractere)
return parola
print(genereaza_parola()) # ex: "aB3xKp9Q"
print(genereaza_parola(12)) # ex: "kR7mNq2xPa5L"
Ce sunt string.ascii_letters și random.choice?
string.ascii_letters= toate literele mici și mari:abcde...XYZstring.digits= cifrele:0123456789random.choice(s)= alege un caracter aleatoriu din șiruls
Rezumat¶
def nume(param):definește o funcțiereturn valoaretrimite înapoi rezultatul- Parametrii cu valori implicite:
def f(x, y=0): - Variabilele locale există doar în interiorul funcției
- Funcțiile pot returna mai multe valori:
return a, b
Pasul următor: → Lecția 09: Fișiere