Funcții
Funcțiile reprezintă un bloc de cod care execută o anumită sarcină și care poate fi utilizat în mod repetat în alte părți ale programului. În articolele anterioare, am folosit deja funcții. În special, funcția print(), care afișează o anumită valoare în consolă. Python are multe funcții încorporate și permite definirea propriilor funcții. Definiția formală a unei funcții este:
def nume_funcție([parametri]):
instrucțiuni
Definirea unei funcții începe cu expresia def, urmată de numele funcției, un set de paranteze care pot conține parametri și două puncte. Parametrii din paranteze sunt opționali. Pe linia următoare se află blocul de instrucțiuni pe care funcția îl execută. Toate instrucțiunile funcției au indentări de la începutul liniei.
De exemplu, definirea unei funcții simple:
def spune_salut():
print("Salut")
Funcția se numește spune_salut. Ea nu are parametri și conține o singură instrucțiune, care afișează în consolă șirul "Salut".
Observați că instrucțiunile funcției trebuie să aibă indentări de la începutul funcției. De exemplu:
def spune_salut():
print("Salut")
print("La revedere")
Aici, instrucțiunea print("La revedere") nu are indentări de la începutul funcției spune_salut și, prin urmare, nu aparține acestei funcții. De obicei, între definiția funcției și restul instrucțiunilor care nu aparțin funcției, se află două linii goale.
Pentru a apela o funcție, se specifică numele funcției, urmat de paranteze care conțin valorile pentru toți parametrii săi
nume_funcție([parametri])
De exemplu, definim și apelăm o funcție:
def spune_salut(): # definirea funcției spune_salut
print("Salut")
spune_salut() # apelul funcției spune_salut
spune_salut()
spune_salut()
Aici, funcția spune_salut este apelată de trei ori la rând. În consecință, vom obține următorul output în consolă:
Salut
Salut
Salut
Observați că funcția este mai întâi definită și apoi apelată.
Dacă funcția are o singură instrucțiune, aceasta poate fi plasată pe aceeași linie cu restul definiției funcției:
def spune_salut(): print("Salut")
spune_salut()
În mod similar, putem defini și apela și alte funcții. De exemplu, să definim și să executăm câteva funcții:
def spune_salut():
print("Salut")
def spune_la_revedere():
print("La revedere")
spune_salut()
spune_la_revedere()
Output-ul în consolă:
Salut
La revedere
Funcții locale
Unele funcții pot fi definite în interiorul altor funcții - aceste funcții interne sunt numite funcții locale. Funcțiile locale pot fi utilizate doar în interiorul funcției în care sunt definite. De exemplu:
def afișează_mesaje():
# definirea funcțiilor locale
def spune_salut(): print("Salut")
def spune_la_revedere(): print("La revedere")
# apelul funcțiilor locale
spune_salut()
spune_la_revedere()
# Apelul funcției afișează_mesaje
afișează_mesaje()
#spune_salut() # în afara funcției afișează_mesaje funcția spune_salut nu este accesibilă
Aici, funcțiile spune_salut() și spune_la_revedere() sunt definite în interiorul funcției afișează_mesaje() și, prin urmare, sunt funcții locale în raport cu aceasta. Ele pot fi utilizate doar în interiorul funcției afișează_mesaje().
Organizarea programului și funcția main
Într-un program pot fi definite multe funcții. Pentru a le organiza, unul dintre moduri este adăugarea unei funcții speciale (de obicei numită main), în care sunt apoi apelate celelalte funcții:
def main():
spune_salut()
spune_la_revedere()
def spune_salut():
print("Salut")
def spune_la_revedere():
print("La revedere")
# Apelul funcției main
main()
Output-ul în consolă:
Salut
La revedere