Está en la página 1de 6

FUNCIONES

VIDEO EXPLICATIVO

https://www.youtube.com/watch?v=ddHqr-
Kh9P0&list=PLKHTJPdGkB2fJz45aPpMG6AsH051obsWo&index=27

https://www.youtube.com/watch?v=8YQhPHAmvxk

Ejercicios resueltos con funciones


https://www.youtube.com/watch?v=3HgXt-keJT4

¿Qué es una función en Python? Una función en Python (y en cualquier otro lenguaje de
programación) es un bloque de líneas de código o un conjunto de instrucciones cuya
finalidad es realizar una tarea específica. Puede reutilizarse a voluntad para repetir dicha
tarea.
¿Cómo definir una función en Python?
Para definir una función nueva en Python utiliza la palabra reservada def, seguida del
nombre que le quieres dar a la función. A continuación, añade los paréntesis con los
parámetros de entrada de la función seguidos de dos puntos (:). Después, normalmente
en otra línea de código, agrega el bloque de instrucciones que quieres que se ejecuten
cada vez que se invoca a la función.

Dentro de este bloque de instrucciones (casi siempre al final y de forma opcional) se


coloca una sentencia de retorno que no es más que el valor que deseas que devuelva la
función: para esto usa la palabra reservada return
Una función en Python siempre devolverá un valor; es decir, si no se añade una sentencia
de retorno (return), se devolverá el valor predeterminado None.
# ejemplo de definición de una función
def suma(a, b):
return a + b
result = suma(8,5)
# result = 13

También puedes definir valores predeterminados para los parámetros de entrada de tus
funciones. Esto te permite indicar que dichos parámetros son opcionales, es decir, que
pueden no ser informados al momento de invocar la función; sin embargo, como cuentan
con parámetros por default previamente definidos, la función seguirá ejecutándose con
normalidad.
def suma(a, b=8):
return a + b
result = suma(5)
# result = 13

Diferencia entre parámetros y argumentos


Antes de analizar las posibles formas de presentar los argumentos a una función, es
importante aclarar las diferencias entre los conceptos de parámetro y argumento:

 Parámetros: son las variables de entrada que se encuentran dentro de los


paréntesis al momento de definir la función.
 Argumentos: son los valores específicos que tomarán los parámetros al momento
de llamar la función.
Teniendo claros estos dos conceptos, veamos los diferentes tipos de argumentos que
puede aceptar una función en Python.

ARGUMENTOS CON VALORES POR OMISIÓN (PARÁMETROS POR OMISIÓN)


Video explicativo
https://www.youtube.com/watch?v=xY2JxvU0Ee4

Esto crea una función que puede ser llamada con menos argumentos que los que permite.
En la declaración de la función puedes asignar un valor a un argumento. Entonces, ese
argumento será opcional al invocar a esa función y si lo omitís al invocar a la función va a
tomar su valor asignado. A ese valor lo llamas valor por omisión.

Por ejemplo:

def saludar(nombre, mensaje='Hola'):


print mensaje, nombre

saludar('Pepe Grillo')

# Imprime: Hola Pepe Grillo

Al asignar parámetros por omisión, no debe dejarse espacios en blanco ni antes ni


después del signo =.

PALABRAS CLAVES COMO ARGUMENTOS

Video explicativo
https://www.youtube.com/watch?v=K9yF6Yc7u58
https://www.youtube.com/watch?v=iudc5TxIgVw

En Python no es necesario escribir los argumentos en el orden en que la función define sus
parámetros. Podemos especificar el nombre del parámetro y de esa manera escribir los
argumentos en cualquier orden.
def saludar(nombre, mensaje='Hola'):
print mensaje, nombre

saludar(mensaje="Buen día", nombre="Juancho")


Ejemplo 2
def restar (actual, nacimiento):
resultado = actual - nacimiento
return resultado
 
 
edad_erronea = restar(1990,2020)
edad = restar(nacimiento=1990, actual=2020)
print (edad_erronea)
print (edad)

En el ejemplo anterior podemos llamar la función restar pasándole como argumentos


1990 y 2020. Por default copiará el valor 1990 al parámetro actual y el valor 2020 al
parámetro nacimiento. Pero podemos pasar los argumentos por nombre:
edad = restar (nacimiento =1990, actual=2020)
y poner los argumentos en cualquier orden.

PARÁMETROS ESPECIALES (LISTAS DE ARGUMENTOS)

Video https://youtu.be/8YQhPHAmvxk

Por defecto, los argumentos pueden enviarse a una función Python o bien por posición o
explícitamente por clave. Para legibilidad y rendimiento tiene sentido restringir como se
pueden enviar los argumentos, así un desarrollador necesitará mirar solamente la
definición de la función para determinar si los argumentos se deben enviar por posición,
por posición o clave, o por clave.

En Python existen distintos tipos de argumentos que debemos de conocer ya que


entenderlos nos ayudará muchísimo a la hora de programar y de consultar la
documentación. En concreto debemos de distinguir entre:
 Los argumentos posicionales: son argumentos que se pueden llamar por su
posición en la definición de la función.
 Los argumentos de palabras: clave son argumentos que se pueden llamar por su
nombre.
 Los argumentos obligatorios: son argumentos que se deben pasar a la función.
 Los argumentos opcionales: son argumentos que no es necesario especificar. En
Python, los argumentos opcionales son argumentos que tienen un valor
predeterminado.

A modo de guía:
 Utilice únicamente posicionales si quiere que el nombre del parámetro esté
disponible para el usuario. Esto es útil cuando el nombre del parámetro no tiene
un significado real, si se quiere imponer el orden de los parámetros cuando una
función es llamada o si necesita tomar algunos parámetros posicionales y palabras
claves arbitrarias.
 Utilice parámetros únicamente de palabras clave cuando los nombres de los
parámetros tienen un significado y la definición de la función será más entendible
usando nombres explícitos o cuando desea evitar que los usuarios dependan de la
posición de los parámetros que se pasan.
 En el caso de una API, use solo posicional para evitar que se rompan los cambios
de la API si el nombre del parámetro se modifica en el futuro.

LISTAS DE ARGUMENTOS ARBITRARIOS


https://www.youtube.com/watch?v=1hJ0PRst2XM

https://www.youtube.com/watch?v=l0zfIhXcN94

Python permite pasar un número arbitrario de argumentos a una función y, dentro de la


función, tratarlos como una lista.

Para especificar una lista arbitraria de parámetros, es necesario marcar el parámetro con
un asterisco. Habitualmente se le llama al parámetro *args.

1 def saluda(*args):
2 for nombre in args:
3 print('Hola,', nombre)
4
5 saluda('Smith', 'Murdock', 'Peck', 'Baracus')

Resultado:
Hola, Smith
Hola, Murdock
Hola, Peck
Hola, Baracus

Además de especificar una lista arbitraria de argumentos por posición, es posible


especificar también una lista arbitraria de argumentos por nombre (keyword arguments).
Para ello utilizaremos dos asteriscos antes del nombre del parámetro. Habitualmente se le
llama al parámetro **kwargs ([k]ey[w]ord[arg]ument[s]).
def equipo(*args, **kwargs):
for arg in args:
print('argumento:', arg)
for key in kwargs.keys():
print('clave:', key, 'valor:', kwargs[key])

equipo('Smith', 'Murdock', teniente='Peck', sargento='Baracus')

Resultado:
argumento: Smith
argumento: Murdock
clave: teniente valor: Peck
clave: sargento valor: Baracus

Podemos utilizar funciones que solo tengan listas arbitrarias de argumentos por posición o
bien que solo tengan listas arbitrarias de argumentos por nombre.

También podría gustarte