Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VIDEO EXPLICATIVO
https://www.youtube.com/watch?v=ddHqr-
Kh9P0&list=PLKHTJPdGkB2fJz45aPpMG6AsH051obsWo&index=27
https://www.youtube.com/watch?v=8YQhPHAmvxk
¿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.
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
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:
saludar('Pepe Grillo')
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
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.
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.
https://www.youtube.com/watch?v=l0zfIhXcN94
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
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.