Funcións
Ata agora, estivemos escribindo todo o noso código no app.py, pero a medida que os nosos programas medran, necesitamos unha mellor forma de organizar o noso código. Necesitamos dividir o noso código en anacos máis pequenos, máis manexables e máis mantíbeis aos que chamamos funcións. A función é un contedor para algunhas liñas de código que realizan unha tarefa específica.
Por exemplo, xa aprendeu sobre algunhas funcións integradas en Python print()
input()
. Cada función ten un propósito e sabe como realizar unha tarefa específica. Entón, cando construímos grandes programas complexos, debemos dividir o noso código en pequenos anacos reutilizables, é dicir, funcións.
Entendemos este concepto construíndo un programa para imprimir unha mensaxe de saúdo.
print('Hi there!')
print('Welcome aboard!')
Aquí temos un programa sinxelo con só dúas liñas de código. Agora, digamos, imos necesitalos noutros programas para poñelos nunha función que poidamos reutilizar.
Déixeme introducir unha palabra clave reservada def
en Python, que é a abreviatura de define e se usa para definir unha función.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Agora este bloque de código definirá unha función "greet_user
” coas liñas de códigos despois diso. Sempre que se chame a esta función, executaranse estas dúas liñas. Usemos isto:
print('start')
greet_user()
print('finish')
O programa execútase secuencialmente, o que significa que tería que definir unha función antes de chamala no programa.
Parámetros
As funcións definidas funcionan de forma un pouco diferente ás funcións integradas de Python. Por exemplo, no caso de print()
unha función, necesita algunha información que queremos imprimir, pero a nosa función de saúdo non toma ningunha información. Non sería mellor se puideses pasar o nome do usuario aquí e despois, en lugar de dicir "ola", podes imprimir o nome do usuario?
Podes facelo engadindo os parámetros dentro do paréntese da función definida. Déixame mostrarche:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Agora o "name
” dentro do paréntese actuará como unha variable local e podemos pasar o nome do usuario ao chamalo.
greet_user('Shahbaz')
Agora o parámetro nome está definido como "Shahbaz
". Imos modificar o programa para facer uso del.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Unha cousa importante a ter en conta é que o "nome" na primeira liña chámase Parámetro mentres que o nome que se proporciona, é dicir, Shahbaz, chámase argumento.
Imos adiante e executar este programa.
Así, con estes parámetros, podemos recibir información nas nosas funcións.
Agora, imos facer algo interesante. Digamos que queres engadir outro nome á mensaxe de saúdo. É sinxelo.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Agora teña en conta que cando unha función ten un parámetro, estamos obrigados a pasar un valor para ese parámetro. Se elimina o nome da función e executa o programa, obteremos un erro. Tamén pode usar varios parámetros nunha única función, separados por coma.
Por exemplo, a greet_user(first_name, last_name):
. Os argumentos tamén terán un formato similar.
Argumentos de palabras clave
Ata agora, aprendemos que sempre que definimos parámetros para as nosas funcións sempre debemos proporcionar valores, se non, teremos un erro. No último programa, os argumentos 'Shahbaz'
'Bhatti'
chámanse argumentos posicionais, é dicir, a súa posición ou orde importa no programa.
En Python, temos outro tipo de argumento chamado argumentos de palabras clave, para o que a posición non importa. Déixame mostrar como funcionan.
Mira o último programa. Podemos modificalo así:
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')
Agora o first_name
last_name
son os parámetros da palabra clave. Podes cambiar de lugar e o resultado será o mesmo.
Agora iso non significa que debamos usar sempre argumentos de palabras clave. A maioría das veces usamos argumentos posicionais, pero en determinadas situacións, estes argumentos de palabras clave axúdannos a mellorar a lexibilidade do noso código.
Hai unha cousa máis que debes saber sobre os argumentos das palabras clave. Os argumentos da palabra clave deben vir sempre despois dos argumentos posicionais.
Declaración de devolución
Ata agora aprendemos a crear funcións e enviarlles información mediante os seus parámetros. Agora imos aprender a crear funcións que devolvan valores. Isto é especialmente útil se estás facendo algún tipo de cálculo e queres devolver o resultado a quen estea a usar a túa función. Déixame amosarche.
Imos definir unha función que calculará o cadrado dun número.
def square(number):
return number*number
Usamos a instrución return para devolver este número fóra da función. Agora, se chamamos a esta función, devolve un valor igual que o input()
función. Imos imprimilo no terminal.
Podes argumentar que se pode obter o mesmo resultado sen usar a declaración return. Imos comprobalo.
Vemos dúas cousas, o número 9 e ningunha. Que está pasando aquí?
Cando o intérprete de Python executa este código, primeiro chamará á función cadrada e o control pasará á función. Aquí calculamos o cadrado deste número dado e despois imprimímolo no terminal.
Agora, por defecto, todas as funcións devolven o valor none. Polo tanto, se non temos aquí unha declaración de retorno, por defecto Python non devolve ningunha. None é un obxecto que representa a ausencia dun valor. É como nada ou nulo en C, C++, Java e Javascript.
Remata!
Espero que entendeses a importancia das funcións.
Son un aspecto significativo da aprendizaxe de Python se planeas escribir programas grandes e complexos durante a túa carreira de codificación.
Deixe unha resposta