Functii in Python
Ce este o functie?
O functie este o bucata de cod reutilizabil care face o anumita sarcina.
De ce le folosim?
Le folosim pentru a ne face programul mai scurt, mai usor de urmarit si mai modular.
Cum declaram o functie?
def numele-functiei(parametri):
....
return expresie
Tipuri de functii
Exista doua tipuri de functii:
Functiile care sunt deja scrise in biblioteci si functiile pe care le putem defini cum am aratat mai sus.
Haideti sa luam un exemplu de functie:
def gigel():
print("Stiu sa fac functii")
In consola nu o sa vedem nimic. De ce se intampla asta? Se intampla pentru ca o functie trebuie sa fie apelata ca sa execute codul din interiorul ei. Cum apelam o functie? Trebuie sa scriem "numele-functiei()". De exemplu:
def gigel():
print("Stiu sa fac functii")
gigel()
Acum in consola o sa vedem:
Stiu sa fac functii
Haideti sa vedem cum sta treaba cu acel parametru din paranteza. Parametrul este valoarea pasata in interiorul functiei. Putem sa avem o infinitate de parametri, important este sa ii separam ","
Haideti sa ne luam un exemplu ca sa ne fie mai usor sa intelegem:
def parimp(x):
if (x%2==0):
return "Par"
else:
return "Impar"
print(parimp(26))
print(parimp(13))
In consola o sa vedem:
Par
Impar
Exista mai multe tipuri de parametri:
1.Parametrii default
2.Parametrii cu nume
3.Parametrii de pozitie
4.Parametrii arbitrari
Numele lor nu spun prea multe asa ca o sa luam fiecare tip de parametru in parte.
Parametrii default
Acesta este un parametru defaul care isi asuma singur o valoare daca nu ii este introdusa una. De exemplu:
def exemplu(x, y=50):
print(x)
print(y)
exemplu(15)
In consola o sa vedem:
15
50
Parametrii cu nume
Acesti parametrii te ajuta pentru ca nu trebuie sa mai tinem minte ordinea parametrilor. Exemplu:
def exemplu(fnume, lnume):
print(fnume, lnume)
exemplu(fnume='AUDI', lnume='BMW')
exemplu(lnume='BMW', fnume='AUDI')
In consola o sa vedeti:
AUDI BMW
AUDI BMW
Parametrii de pozitie
Acestia sunt parametrii la care conteaza pozitia. O sa ii folosim doar daca stim pozitia lor. Exemplu:
def exemplu(nume, varsta):
print("Salut, eu sunt", nume)
print("Am varsta de ", varsta)
exemplu("John", 32)
print('\n')
exemplu(32, "John")
In consola o sa vedeti:
Salut, eu sunt John
Am varsta de 32
Salut, eu sunt 19
Am varsta de George
Parametrii arbitrari
Sa incepem cu un exemplu:
def exemplu(*argv):
for arg in argv:
print(arg)
exemplu('Salut', 'Ce', 'mai', 'faci')
In consola o sa vedem:
Salut
Ce
mai
faci
Parametrul "*argv" este un sir de siruri in care argv[0]='Salut', argv[1]='Ce' etc.
Functii in interiorul altor functii
Aceste functii se numesc functii imbricate. Se folosesc pentru a le proteja de tot ce se intampla in exteriorul lor. Exemplu:
def f1():
s = 'Salut'
def f2():
print(s)
f2()
f1()
In consola o sa vedem:
Salut
Functii recursive
Ce sunt functiile recursive? Functiile recursive sunt functii care se apeleaza singure. Acestea se pot folosi la calcularea unui factorial, calcularea permutarilor etc. Haideti sa vedem un exemplu:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5))
In consola o sa vedem:
120
Acesta a fost si cursul despre functii, sper ca a fost suficient de clar.