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.

Last modified: Saturday, 12 July 2025, 12:22 PM