Está en la página 1de 16

Funciones

León, R. (2021). Funciones [apunte].


Chile. UNAB
Funciones

FUNCIONES

1. Introducción

Supongamos se necesita calcular el número combinatorio C(m,n) definido como,


𝑚!
𝐶(𝑚, 𝑛) =
(𝑚 − 𝑛)! 𝑛!

Donde 𝑛! (el factorial de n) es el producto de los números enteros desde 1 hasta n:


𝑛

𝑛! = ∏ 𝑖 = 1 × 2 × 3 × ⋯ × (𝑛 − 1) × 𝑛
𝑖=1

El código para calcular el factorial de n es simple:

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:

abs(x) entrega el valor absoluto de un número x.

Figura 4:
Ejemplo de la función abs(x).
3

El número x sobre el cual se aplica la función se denomina argumento. El argumento


siempre debe ir entre paréntesis.

Figura 5:
Error de sintaxis si el argumento no está entre paréntesis.

min(x,y,…) el valor mínimo de los argumentos.


Funciones

Figura 6: Ejemplo de la función min().

Notar que hay funciones en donde podemos entregar más de un argumento.

max(x,y,…) el valor máximo de los argumentos.

Figura 7:
Ejemplo de la función max().

3. Módulos 4

Suponga que usted como buen programador y conocedor de Python, le encomiendan


realizar una tarea en específico en donde las funciones trigonométricas clásicas como
el coseno y el seno están involucradas. En esta situación, una opción sería conocer
el valor de estas funciones trigonométricas para cada ángulo posible que el usuario
quiera calcular. O también averiguar si existe algún algoritmo que permita estimar el
valor de estas funciones para un ángulo dado. En realidad, no hay que preocuparse
demasiado, Python tiene la facilidad de tener a disposición funciones más específicas
en caso de que alguien las necesite. En este ejemplo, necesitamos utilizar funciones
trigonométricas específicas, entonces entran al juego los módulos, que son conjuntos
de funciones que no están predeterminadas, es decir, no están disponibles de
inmediato, sino que necesitan ser importadas para indicarle a Python que las vamos
a utilizar.

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

Salida del programa


coseno(1.0471975511965976) = 0.5000000000000001
seno(1.0471975511965976) = 0.8660254037844386

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

Salida del programa


coseno(1.0471975511965976) = 0.5000000000000001
seno(1.0471975511965976) = 0.8660254037844386 6

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

A continuación, se puede observar otras funciones del módulo matemático de Python.

Figura 10:
Ejemplo del uso de las funciones coseno y seno.

Programa

Salida del programa


2.718281828459045
10
9
0.9999999999999999
0.6931471805599453

Existe un gran número de módulos, cada uno de ellos especializado en un campo de


aplicación determinado. Precisamente, una de las razones por las que Python es un
lenguaje potente y extremadamente útil es por la gran colección de módulos con que
se distribuye. Hay módulos para el diseño de aplicaciones web, diseño de interfaces
de usuario, compresión de datos, criptografía, multimedia, entre otros. Y
constantemente aparecen nuevos módulos: cualquier programador de Python puede
crear sus propios módulos, añadiendo así funciones que simplifican la programación
en un ámbito cualquiera y poniéndolas a disposición de otros programadores.
Funciones

Algunos otros módulos estándares de Python son:

random: módulo que permite generar números aleatorios, es decir, al azar.

Figura 11:
Ejemplo del módulo random.

datetime: módulo que permite manipular fechas y horas.

Figura 12:
Ejemplo del módulo datetime.

datetime: módulo que permite manipular fechas y horas.


Funciones

4. Funciones

Las funciones en Python son creadas con la sentencia def

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).

Recordemos el problema del número combinatorio, en donde se necesita calcular el


factorial de tres números distintos. La función factorial puede ser definida de la
siguiente manera:

Figura 13:
Ejemplo de la función factorial.

El resultado que entrega la función es el valor de la variable f al momento de llegar


al final de las instrucciones (return). Ahora, podemos utilizar la función como
cualquier otra, todas las veces que sea necesario.
Funciones

Figura 14:
Ejemplo del uso de la función factorial.

Programa

Salida del programa


0! = 1
10
12! + 10! = 482630400
(3!)! = 720
ingrese m: 3
(m^2)! = 362880

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.

Al tener la función factorial, ahora podemos programar otra función denominada


comb, la cual nos permita calcular un número combinatorio.

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

Salida del 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

Salida del programa

9814 seg. ==> 2:43:34

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

Salida del programa

Nombre: Juan Perez


Fecha de nac.: 12 / 4 / 1988
Nombre: Ana Gonzalez
Fecha de nac.: 29 / 2 / 2016
Funciones

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.

En Python, también es posible asignar valores por defecto en los parámetros. Es


decir, que, si la función es invocada, se puede entregar menos parámetros de los
necesarios, si es así, la función asume el valor por defecto de los parámetros que no
recibieron valor alguno.

Figura 20:
Valores por omisión.

Programa

Salida del programa


14
7
14

“Para complementar la información y contenidos presentados, puedes dirigirte a”:

1. Downey, A. (2013). Think Python. Green Tea Press. Accesado el 2 de


diciembre de 2019 en https://greenteapress.com/wp/think-python-2e/

2. Python software foundation, Python v3 Documentation. Accesado el 2 de


diciembre de 2019 en https://docs.python.org/3/

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

1. Hinojosa, A. (2016). Python paso a paso. RA-MA Editorial y Publicaciones.

2. Marzal, A., Gracia, I., García, P. (2014). Introducción a la Programación con


Python 3. Universitat Jaumé Publicaciones.

3. Bonvallet, R. (2013). Apuntes de Programación. Editorial USM.

15

También podría gustarte