funcţii
Până acum, am scris tot codul nostru în app.py, dar pe măsură ce programele noastre cresc, avem nevoie de o modalitate mai bună de a ne organiza codul. Trebuie să ne împărțim codul în bucăți mai mici, mai ușor de gestionat și mai ușor de întreținut, pe care le numim funcții. Funcția este un container pentru câteva linii de cod care îndeplinesc o anumită sarcină.
De exemplu, ați învățat deja despre câteva funcții încorporate în Python print()
și input()
. Fiecare funcție are un scop și știe cum să îndeplinească o anumită sarcină. Deci, atunci când construim programe complexe mari, ar trebui să ne împărțim codul în bucăți mai mici reutilizabile, adică funcții.
Să înțelegem acest concept prin construirea unui program pentru tipărirea unui mesaj de salut.
print('Hi there!')
print('Welcome aboard!')
Aici avem un program simplu cu doar două linii de cod. Acum, să spunem, vom avea nevoie de ele în alte programe pentru a le pune într-o funcție pe care să o putem reutiliza.
Permiteți-mi să introduc un cuvânt cheie rezervat def
în Python, care este prescurtare pentru define și este folosit pentru definirea unei funcții.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Acum acest bloc de cod va defini o funcție „greet_user
” cu rândurile de coduri după aceea. Ori de câte ori această funcție este apelată, aceste două linii vor fi executate. Să folosim asta:
print('start')
greet_user()
print('finish')
Programul este executat secvenţial, ceea ce înseamnă că ar trebui să definiţi o funcţie înainte de a o apela în program.
parametrii
Funcțiile definite funcționează puțin diferit față de funcțiile încorporate din Python. De exemplu, în cazul print()
o funcție, este nevoie de anumite informații pe care vrem să le imprimăm, dar funcția noastră de salut nu preia nicio informație. Nu ar fi mai frumos dacă ai putea trece numele utilizatorului aici și apoi, în loc să spui „bună ziua”, ai putea tipări numele utilizatorului?
Puteți face acest lucru adăugând parametrii în paranteza funcției definite. Lasa-ma sa-ti arat:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Acum "name
” în interiorul parantezei va acționa ca o variabilă locală și putem trece numele utilizatorului atunci când îl apelăm.
greet_user('Shahbaz')
Acum parametrul nume este setat la „Shahbaz
”. Să modificăm programul pentru a-l folosi.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Un lucru important de remarcat este că „numele” din prima linie se numește Parametru, în timp ce numele furnizat, adică Shahbaz, este numit un argument.
Să mergem mai departe și să rulăm acest program.
Deci, cu acești parametri, putem primi informații în funcțiile noastre.
Acum, hai să facem ceva interesant. Să presupunem că doriți să adăugați un alt nume la mesajul de salut. E simplu.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Acum rețineți că atunci când o funcție are un parametru, suntem obligați să transmitem o valoare pentru acel parametru. Dacă eliminați numele din funcție și rulați programul, vom primi o eroare. De asemenea, puteți utiliza mai mulți parametri într-o singură funcție, separați prin virgulă.
De exemplu, greet_user(first_name, last_name):
. Argumentele vor fi, de asemenea, formatate similar.
Argumentele cuvintelor cheie
Până acum, am învățat că ori de câte ori definim parametrii pentru funcțiile noastre ar trebui să furnizăm întotdeauna valori, altfel vom primi o eroare. În ultimul program, argumentele 'Shahbaz'
și 'Bhatti'
se numesc argumente poziționale, adică poziția sau ordinea lor contează în program.
În Python, avem un alt tip de argument numit argumente de cuvinte cheie, pentru care poziția nu contează. Lasă-mă să-ți arăt cum funcționează.
Uită-te la ultimul program. O putem modifica astfel:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Acum first_name
și last_name
sunt parametrii cuvintelor cheie. Puteți schimba locurile lor și rezultatul va fi același.
Asta nu înseamnă că ar trebui să folosim întotdeauna argumente ale cuvintelor cheie. De cele mai multe ori folosim argumente poziționale, dar în anumite situații, aceste argumente ale cuvintelor cheie ne ajută să îmbunătățim lizibilitatea codului nostru.
Mai este un lucru pe care trebuie să-l știți despre argumentele cuvintelor cheie. Argumentele cheie ar trebui să vină întotdeauna după argumentele poziționale.
Declarație de returnare
Până acum am învățat cum să creăm funcții și să le trimitem informații folosind parametrii lor. Acum să învățăm cum să creăm funcții care returnează valori. Acest lucru este util în special dacă faceți un fel de calcule și doriți să returnați rezultatul oricui vă folosește funcția. Lasa-ma sa-ti arat.
Să definim o funcție care va calcula pătratul unui număr.
def square(number):
return number*number
Am folosit instrucțiunea return pentru a returna acest număr în afara funcției. Acum, dacă numim această funcție, returnează o valoare la fel ca input()
funcţie. Să-l imprimăm pe terminal.
Puteți argumenta că același rezultat poate fi obținut fără a utiliza instrucțiunea return. Hai să verificăm.
Vedem două lucruri, numărul 9 și niciunul. Ce se intampla aici?
Când interpretul Python execută acest cod, mai întâi va apela funcția pătrat și controlul se mută la funcție. Aici calculăm pătratul acestui număr dat și apoi îl imprimăm pe terminal.
Acum, în mod implicit, toate funcțiile returnează valoarea none. Deci, dacă nu avem o declarație return aici, implicit Python nu returnează niciuna. Niciunul este un obiect care reprezintă absența unei valori. Este ca nimic sau nul în C, C++, Java și Javascript.
Învelire!
Sper că ați înțeles importanța funcțiilor.
Ele reprezintă un aspect semnificativ al învățării Python dacă intenționați să scrieți programe mari și complexe în timpul carierei dvs. de codare.
Lasă un comentariu