Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNCIONES
1. Introducción
𝑛! = ∏ 𝑖 = 1 × 2 × 3 × ⋯ × (𝑛 − 1) × 𝑛
𝑖=1
Figura 1:
Factorial de un número entero n.
1
Funciones
Sin embargo, para calcular el número combinatorio, se debe realizar este cálculo tres
veces:
Figura 2:
Número combinatorio C(m,n).
Es importante recalcar que la única diferencia entre los tres cálculos es el valor de
término de cada ciclo: n, m y m – n respectivamente. Escribir el mismo código varias
veces puede ser tedioso y propenso a errores. En este caso, solamente se programa
tres veces el mismo código, en algunos casos, podría repetirse el código cientos o
miles de veces. Esto además no permite visualizar lo que realmente hace el código,
ya que, al estar repetido, las líneas de código aumentan considerablemente y el
programa se vuelve difícil de entender.
¡En el ejemplo anterior, sería ideal tener un método o una función que se denomine
factorial que permita calcular n! para un número entero n cualquiera. Si fuera así,
nuestro programa de la Figura 2 se podría reducir a:
Funciones
Figura 3:
Número combinatorio C(m,n) con la función factorial.
Es importante recalcar que la única diferencia entre los tres cálculos es el valor de
término del ciclo.
2. Funciones predefinidas
Python ofrece una serie de funciones predefinidas, de las cuales ya hemos utilizado
anteriormente tales como input(), print(), round(), entre otras. Estas
funciones, como ya están construidas, simplemente se puede utilizar en alguna
expresión. A continuación, veremos algunas de ellas:
Figura 4:
Ejemplo de la función abs(x).
3
Figura 5:
Error de sintaxis si el argumento no está entre paréntesis.
Figura 7:
Ejemplo de la función max().
3. Módulos 4
El módulo math es el que nos permite utilizar funciones matemáticas específicas tales
como coseno, seno, logaritmo, entre otras. Para acceder a estas funciones, primero
debemos realizar la acción de importar. Veremos dos formas para importar los
módulos en Python:
Funciones
import <módulo>
from <módulo> import <función 1>,<función 2>,…,<función N>
La primera forma indica que queremos hacer uso de un módulo en específico, lo que
nos permite luego acceder a las funciones del módulo en cuestión. En la Figura 8
podemos observar el uso de esta forma para acceder a la función coseno y seno.
Notar que incluso podemos usar el número π.
Figura 8:
Ejemplo del uso de las funciones coseno y seno.
Programa
Cabe mencionar que con la primera forma para acceder a la función se debe indicar
el módulo seguido de un punto y luego la función que se quiere utilizar.
Con la segunda forma se evita el hecho de escribir el módulo (y el punto) cada vez
que se utiliza alguna función. Hay que tener claro con anterioridad las funciones que
se quieren utilizar.
Funciones
Figura 9:
Ejemplo del uso de las funciones coseno y seno.
Programa
Con esta forma hay que tener precaución en el uso de los nombres de las variables,
ya que se pueden interponer con las funciones de los módulos. Por lo mismo,
dependiendo de lo más cómodo para el programador, es que existen dos formas
distintas para importar. Otra forma de evitar estos problemas es siempre importar
los módulos al comienzo del programa. Con esto, se puede evitar algún “calce de
nombre”. De todas maneras, siempre hay que evitar utilizar variables con el nombre
de alguna función.
Funciones
Figura 10:
Ejemplo del uso de las funciones coseno y seno.
Programa
Figura 11:
Ejemplo del módulo random.
Figura 12:
Ejemplo del módulo datetime.
4. Funciones
def <nombre_funcion>(<parametros>):
# instrucciones de la función
return <valores_de_retorno>
Los parámetros son las variables en donde los valores de entrada quedan
almacenados.
Al igual que en otras sentencias, las instrucciones que son parte de la función deben
ir indentadas. Al final de la función se puede indicar (es opcional) el resultado
mediante la sentencia return. Notar que se pueden entregar uno o más resultados
de la función (valores de retorno).
Figura 13:
Ejemplo de la función factorial.
Figura 14:
Ejemplo del uso de la función factorial.
Programa
Las variables que son creadas dentro de la función (incluyendo los parámetros y el
resultado) se denominan variables locales, y solamente son visibles dentro de la
función, no en el resto del programa. Por otra parte, las variables que son definidas
fuera de alguna función se denominan variables globales, y son visibles desde
cualquier parte del programa. Sin embargo, su valor no puede ser modificado, ya
que una asignación crearía una variable local con el mismo nombre. En la Figura 14,
las variables locales son n, f e i. Cuando la función es invocada y termina de
ejecutarse, estas variables dejan de existir, como se puede observar en la Figura 15.
Funciones
Figura 15:
Variables locales de la función factorial.
Figura 16:
Función comb.
11
La función comb utiliza tres veces la función factorial, y con esos resultados calcula
el número combinatorio. Incluso, podemos escribir de forma más corta la función. En
la Figura 17 se observa el programa completo en donde además se solicita al usuario
ingresar los valores para el cálculo del número combinatorio.
Funciones
Figura 17:
Programa completo con la función factorial y comb.
Programa
ingrese m: 10
ingrese n: 3 12
(10 3) = 120
Notar que el programa queda más modularizado y legible. La parte principal del
programa, de hecho, tiene solamente 4 líneas de código. Además, hay tres variables
globales: m, n y c, que son las que están definidas fuera de las funciones.
En Python, una función puede retornar más de un valor. Por ejemplo, la función que
se muestra a continuación recibe una cierta cantidad de segundos y retorna lo que
corresponde en horas, minutos y segundos.
Funciones
Figura 18:
Múltiples valores de retorno.
Programa
Una función también puede realizar acciones sin entregar algún resultado. Por
ejemplo, una función que solamente muestre algún tipo de información. 13
Figura 19:
Sin valores de retorno.
Programa
Técnicamente, todas las funciones retornan valores. En el caso de las funciones que
no tienen una sentencia return, el valor de retorno siempre es None. Pero como la
invocación a la función no aparece en una asignación, el valor se pierde, y no tiene
ningún efecto en el programa.
Figura 20:
Valores por omisión.
Programa
3. Marzal Varó, A., Gracia Luengo, I., & García Sevilla, P. (2014). Introducción a la
programación con Python 3. Universitat Jaume I.
https://doi.org/10.6035/sapientia93 (Capítulo 1, secciones 1.1 y 1.2, páginas: 11
- 16)
Funciones
Bibliografía
15