Anteriormente hemos visto funciones nativas que vienen con Python como len() para calcular la longitud de una lista, pero al igual que en otros lenguajes de programación, también podemos definir nuestras propias funciones. Para ello tenemos que usar la palabra reservada def.
Sintaxis de una función
1
2
3
4
defname_function(param):# ...code
returnval
Cualquier función tendrá un nombre, opcionalmente podrá recibir parámetros, el cuerpo que contiene el código a ejecutar y opcionalmente, pero que en la mayoría de los casos se hace es que nos retorna un valor. Por ejemplo el siguiente código define una función que recibe un parámetro y retorna el valor pasado como argumento a la función elevado al cuadrado:
defelevar_al_cuadrado(numero):returnnumero**2```x---## Parámetros y argumentos
Enladefinicióndeunafunciónlosvaloresqueserecibensedenominan**parámetros**,perodurantelallamadaacuyasfunciones,losvaloresqueseenvíansedenominan**argumentos**.### Argumentos por posición
Cuandoenviamosargumentosaunafunción,estosserecibenenordensegúnlosparámetrosdefinidos.Enesoscasospodemosdecirquesetratadeargumentosporposición:```pydefresta(a,b):returna-bprint(resta(50,10))
1
40
Argumentos por nombre
Sin embargo es posible evadir el orden de los parámetros, si indicamos en la llamada a la función que valor tiene cada parámetro a partir de su nombre:
1
2
3
4
defresta(a,b):returna-bprint(resta(b=50,a=10))
1
-40
Llamada sin argumentos
Al llamar a una función que tiene definidos parámetros, si no le enviamos los argumentos correctamente lanzará un error:
Para evitar un error como en el caso anterior, podemos asignar valores por defecto, de esa forma podríamos hacer una comprobación antes de ejecutar el código de la función:
1
2
3
4
5
6
defresta(a=None,b=None):ifa==Noneorb==None:return"Error, debes enviar dos números a la función para operar"returna-bprint(resta())