Funcions
Fins ara, hem estat escrivint tot el nostre codi a l'app.py, però a mesura que els nostres programes creixen, necessitem una millor manera d'organitzar el nostre codi. Hem de dividir el nostre codi en fragments més petits, més manejables i més conservables que anomenem funcions. La funció és un contenidor per a unes quantes línies de codi que realitzen una tasca específica.
Per exemple, ja heu après algunes funcions integrades a Python print()
i input()
. Cada funció té un propòsit i sap com realitzar una tasca concreta. Per tant, quan creem programes complexos grans, hauríem de dividir el nostre codi en trossos més petits reutilitzables, és a dir, funcions.
Entenem aquest concepte construint un programa per imprimir un missatge de salutació.
print('Hi there!')
print('Welcome aboard!')
Aquí tenim un programa senzill amb només dues línies de codi. Ara, diguem-ne, els necessitarem en altres programes per posar-los en una funció que puguem reutilitzar.
Permeteu-me que introdueixi una paraula clau reservada def
a Python, que és l'abreviatura de define i s'utilitza per definir una funció.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Ara aquest bloc de codi definirà una funció "greet_user
” amb les línies de codis després d'això. Sempre que es crida aquesta funció, s'executaran aquestes dues línies. Fem servir això:
print('start')
greet_user()
print('finish')
El programa s'executa seqüencialment, el que significa que hauríeu de definir una funció abans de cridar-la al programa.
Paràmetres
Les funcions definides funcionen una mica de manera diferent que les funcions integrades de Python. Per exemple, en el cas de print()
una funció, necessita informació que volem imprimir, però la nostra funció de salutació no pren cap informació. No seria millor si poguéssiu passar el nom de l'usuari aquí i després, en comptes de dir "hola", podríeu imprimir el nom de l'usuari?
Podeu fer-ho afegint els paràmetres dins dels parèntesis de la funció definida. Deixa'm ensenyar-te:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Ara el "name
” dins del parèntesi actuarà com una variable local i podem passar el nom de l'usuari en cridar-lo.
greet_user('Shahbaz')
Ara el paràmetre de nom s'estableix a "Shahbaz
”. Anem a modificar el programa per fer-ne ús.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Una cosa important a tenir en compte és que el "nom" de la primera línia s'anomena paràmetre mentre que el nom subministrat, és a dir, Shahbaz, s'anomena argument.
Anem endavant i executem aquest programa.
Així, amb aquests paràmetres, podem rebre informació a les nostres funcions.
Ara, anem a fer alguna cosa interessant. Suposem que voleu afegir un altre nom al missatge de salutació. És fàcil.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Ara tingueu en compte que quan una funció té un paràmetre, estem obligats a passar un valor per a aquest paràmetre. Si elimineu el nom de la funció i executeu el programa, obtindrem un error. També podeu utilitzar diversos paràmetres en una única funció, separats per una coma.
Per exemple, greet_user(first_name, last_name):
. Els arguments també tindran un format similar.
Arguments de paraules clau
Fins ara, hem après que sempre que definim paràmetres per a les nostres funcions sempre hauríem de proporcionar valors, en cas contrari, obtindrem un error. A l'últim programa, els arguments 'Shahbaz'
i 'Bhatti'
s'anomenen arguments posicionals, és a dir, la seva posició o ordre són importants al programa.
A Python, tenim un altre tipus d'argument anomenat arguments de paraula clau, per als quals la posició no importa. Deixa'm mostrar-te com funcionen.
Mireu l'últim programa. El podem modificar així:
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')
Ara el first_name
i last_name
són els paràmetres de la paraula clau. Podeu canviar de lloc i el resultat serà el mateix.
Ara això no vol dir que haguem d'utilitzar sempre arguments de paraula clau. La majoria de vegades fem servir arguments posicionals, però en determinades situacions, aquests arguments de paraula clau ens ajuden a millorar la llegibilitat del nostre codi.
Hi ha una cosa més que necessiteu saber sobre els arguments de paraula clau. Els arguments de la paraula clau sempre han d'anar després dels arguments posicionals.
Declaració de retorn
Fins ara hem après a crear funcions i enviar-los informació mitjançant els seus paràmetres. Ara aprenem a crear funcions que retornin valors. Això és especialment útil si esteu fent algun tipus de càlcul i voleu tornar el resultat a qui faci servir la vostra funció. Deixa'm ensenyar-te.
Definim una funció que calcularà el quadrat d'un nombre.
def square(number):
return number*number
Hem utilitzat la instrucció return per retornar aquest número fora de la funció. Ara, si anomenem aquesta funció, retorna un valor igual que el input()
funció. Imprimim-ho al terminal.
Podeu argumentar que es pot obtenir el mateix resultat sense utilitzar la instrucció return. Anem a comprovar-ho.
Veiem dues coses, el número 9 i cap. Què està passant aquí?
Quan l'intèrpret de Python executa aquest codi, primer cridarà a la funció quadrat i el control es mou a la funció. Aquí calculem el quadrat d'aquest nombre donat i després l'imprimim al terminal.
Ara, per defecte, totes les funcions retornen el valor none. Per tant, si no tenim una declaració de retorn aquí, per defecte Python no en retorna cap. Cap és un objecte que representa l'absència d'un valor. És com res o nul en C, C++, Java i Javascript.
Embolicar!
Espero que hàgiu entès la importància de les funcions.
Són un aspecte important de l'aprenentatge de Python si teniu previst escriure programes grans i complexos durant la vostra carrera de codificació.
Deixa un comentari