Ce este funcția în Python?
O funcție în Python este o bucată de cod care rulează atunci când este referită. Este folosit pentru a utiliza codul în mai multe locuri dintr-un program. Se mai numește și metodă sau procedură. Python oferă multe funcții încorporate, cum ar fi print (), input (), compile (), exec () etc., dar oferă, de asemenea, libertatea de a vă crea propriile funcții.
În acest tutorial, vom învăța
- Cum se definește și se apelează o funcție în Python
- Semnificația indentării (spațiului) în Python
- Cum funcționează valoarea returnată?
- Argumente în funcții
Cum se definește și se apelează o funcție în Python
Funcția în Python este definită de instrucțiunea „def” urmată de numele funcției și paranteze (())
Exemplu:
Să definim o funcție folosind comanda "def func1 (): și să apelăm funcția. Ieșirea funcției va fi „Învăț funcția Python”.
Funcția print func1 () apelează def func1 (): și tipărește comanda „ Învăț funcția Python None ” .
Există set de reguli în Python pentru a defini o funcție.
- Orice argument sau parametru de intrare trebuie plasat în aceste paranteze
- Instrucțiunea pentru prima funcție poate fi o instrucțiune opțională - docstring sau șirul de documentare al funcției
- Codul din fiecare funcție începe cu două puncte (:) și ar trebui să fie indentat (spațiu)
- Declarația de returnare (expresie) iese dintr-o funcție, opțional trimițând înapoi o valoare către apelant. O declarație return fără argumente este aceeași cu return None.
Semnificația indentării (spațiului) în Python
Înainte de a ne familiariza cu funcțiile Python, este important să înțelegem regula de indentare pentru a declara funcțiile Python și aceste reguli sunt aplicabile și altor elemente ale Python, precum declararea condițiilor, buclelor sau variabilei.
Python urmează un anumit stil de indentare pentru a defini codul, deoarece funcțiile Python nu au nici un început sau un sfârșit explicit, cum ar fi acolade, pentru a indica începutul și oprirea funcției, trebuie să se bazeze pe această indentare . Aici luăm un exemplu simplu cu comanda „print”. Când scriem funcția „print” chiar sub funcția def 1 (): Se va afișa o „ eroare de indentare: se aștepta un bloc indentat ”.
Acum, când adăugați liniuța (spațiul) în fața funcției „print”, aceasta ar trebui să imprime așa cum era de așteptat.
Cel puțin, o liniuță este suficientă pentru ca codul dvs. să funcționeze cu succes. Dar, ca o bună practică, este recomandabil să lăsați aproximativ 3-4 liniuțe pentru a vă apela funcția .
De asemenea, este necesar ca, în timp ce declarați indentarea, să păstrați aceeași liniuță pentru restul codului . De exemplu, în captura de ecran de mai jos când apelăm o altă afirmație „încă în func1” și când nu este declarată chiar sub prima declarație de imprimare, va apărea o eroare de indentare „unindent nu se potrivește cu niciun alt nivel de indentare”.
Acum, când aplicăm aceeași indentare pentru ambele instrucțiuni și le aliniem în aceeași linie, se obține rezultatul așteptat.
Cum funcționează valoarea returnată?
Comanda Return în Python specifică ce valoare să dea înapoi apelantului funcției.
Să înțelegem acest lucru cu următorul exemplu
Pasul 1) Aici - vedem când funcția nu este „return”. De exemplu, vrem pătratul de 4 și ar trebui să dea răspunsul "16" atunci când codul este executat. Ceea ce dă atunci când folosim pur și simplu codul „print x * x”, dar când apelați funcția „print square” dă „None” ca ieșire. Acest lucru se datorează faptului că atunci când apelați funcția, recursivitatea nu se întâmplă și cade la sfârșitul funcției. Python returnează „None” pentru că a eșuat la sfârșitul funcției.
Pasul 2) Pentru a face acest lucru mai clar, înlocuim comanda de imprimare cu comanda de atribuire. Să verificăm ieșirea.
Când executați comanda „print square (4)”, acesta returnează de fapt valoarea obiectului, deoarece nu avem nicio funcție specifică de rulat aici, returnează „None”.
Pasul 3) Acum, aici vom vedea cum se recuperează ieșirea folosind comanda „return”. Când utilizați funcția „returnare” și executați codul, acesta va da rezultatul „16.”
Pasul 4) Funcțiile din Python sunt ele însele un obiect, iar un obiect are o anumită valoare. Vom vedea aici cum tratează Python un obiect. Când executați comanda „print square”, aceasta returnează valoarea obiectului. Deoarece nu am trecut niciun argument, nu avem nicio funcție specifică de rulat aici, returnează o valoare implicită (0x021B2D30) care este locația obiectului. În programul practic Python, probabil că nu va fi nevoie să faceți acest lucru.
Argumente în funcții
Argumentul este o valoare care este transmisă funcției atunci când este apelată.
Cu alte cuvinte, pe partea apelantă, este un argument, iar pe partea funcțională este un parametru.
Să vedem cum funcționează Python Args -
Pasul 1) Argumentele sunt declarate în definiția funcției. În timp ce apelați funcția, puteți transmite valorile pentru argumentele respective, așa cum se arată mai jos
Pasul 2) Pentru a declara o valoare implicită a unui argument, atribuiți-i o valoare la definiția funcției.
Exemplu: x nu are valori implicite. Valorile implicite ale y = 0. Când furnizăm un singur argument în timp ce apelăm funcția de multiplicare, Python atribuie valoarea furnizată lui x păstrând în același timp valoarea y = 0. Prin urmare, înmulțirea lui x * y = 0
Pasul 3) De data aceasta vom schimba valoarea la y = 2 în loc de valoarea implicită y = 0 și va returna ieșirea ca (4x2) = 8.
Pasul 4) De asemenea, puteți schimba ordinea în care argumentele pot fi transmise în Python. Aici am inversat ordinea valorii x și y la x = 4 și y = 2.
Pasul 5) Argumente multiple pot fi, de asemenea, transmise ca o matrice. Aici, în exemplu, numim argumentele multiple (1,2,3,4,5) apelând funcția (* args).
Exemplu: Am declarat mai multe argumente ca număr (1,2,3,4,5) când apelăm funcția (* args); imprimă ieșirea ca (1,2,3,4,5)
Sfaturi :
- În Python 2.7. supraîncărcarea funcției nu este acceptată în Python. Funcția de supraîncărcare este capacitatea de a crea mai multe metode cu același nume cu o implementare diferită. Supraîncărcarea funcției este complet acceptată în Python 3
- Există o confuzie destul de mare între metode și funcții. Metodele din Python sunt asociate cu instanțe de obiect, în timp ce funcția nu este. Când Python apelează o metodă, acesta leagă primul parametru al acelui apel de referința obiectului corespunzător. În cuvinte simple, o funcție independentă în Python este o „funcție”, în timp ce o funcție care este un atribut al unei clase sau al unei instanțe este o „metodă”.
Iată codul complet Python 3
#define a functiondef func1():print ("I am learning Python function")print ("still in func1")func1()def square(x):return x*xprint(square(4))def multiply(x,y=0):print("value of x=",x)print("value of y=",y)return x*yprint(multiply(y=2,x=4))
Iată codul complet Python 2
#define a functiondef func1():print " I am learning Python function"print " still in func1"func1()def square(x):return x*xprint square(4)def multiply(x,y=0):print"value of x=",xprint"value of y=",yreturn x*yprint multiply(y=2,x=4)
Rezumat:
Funcția în Python este o bucată de cod reutilizabil care este utilizată pentru a efectua o acțiune unică legată. În acest articol, vom vedea
- Funcție definită de instrucțiunea def
- Blocul de cod din fiecare funcție începe cu două puncte (:) și ar trebui să fie indentat (spațiu)
- Orice argument sau parametru de intrare trebuie plasat în aceste paranteze etc.
- Cel puțin o liniuță ar trebui lăsată înainte de cod după declararea funcției
- Același stil de indentare ar trebui menținut în întregul cod în cadrul funcției def
- Pentru cele mai bune practici, trei sau patru liniuțe sunt considerate cele mai bune înainte de declarație
- Puteți utiliza comanda „return” pentru a returna valorile apelului funcțional.
- Python va imprima o valoare aleatorie ca (0x021B2D30) atunci când argumentul nu este furnizat funcției de apelare. Exemplu „funcție de imprimare”.
- Pe partea apelantă, este un argument, iar pe partea funcției este un parametru
- Valoare implicită în argument - Când furnizăm un singur argument în timp ce apelăm funcția de multiplicare sau orice altă funcție, Python atribuie implicit celălalt argument
- Python vă permite să inversați și ordinea argumentului