Funciones en Python

¿Qué es?

Una función es un pedazo de código con un nombre asociado que realiza una serie de tareas y retorna un valor.

Un ejemplo de función es la de "print", que ya trae el paquete de Python. Pero también puedes crear tus propias funciones.

¿Cómo se declara?


In [4]:
def pasajes(costo, dinero):
    """Calcula cuántos pasajes te alcanzan con cierta 
    cantidad de dinero"""
    x = dinero // costo
    return x

¿Cómo se ejecuta?


In [1]:
def cadena(j):
    print(j*5)
    
cadena("hi")


hihihihihi

La ventaja de crear tus propias funciones es que, cuando tienes que hacer tareas repetitivas, puedes ahorrar líneas de código escribiendo esas tareas sólo una vez, en la declaración de tu función. Además te permite reutilizar código de otros programas.

Cuando no sabemos cuántos parámetros vamos a recibir:

In [15]:
def varios(param1, param2, *otros):
    for val in otros:
        print(val)

varios(1, 2)
varios(1, 2, 3)
varios(1, 2, 3, 4)


3
3
4

In [16]:
def varios(param1, param2, **otros):
    for val in otros.items():
        print(val)

varios(1, 2)
varios(1, 2, otro = 3)
varios(1, 2, otro = 3, unomas = 4)


('otro', 3)
('otro', 3)
('unomas', 4)

Para asignar a un parámetro un valor por defecto:


In [19]:
def imprimir(texto, veces = 1):
    print(texto * veces)
    
imprimir("hi ", 5)
imprimir("hola")


hi hi hi hi hi 
hola

Retornar más de un valor:


In [26]:
def f(x, y):
    return x * 2, y * 2

a, b = f(1, 2)
print(a)
print(b)


2
4

Ejercicios

  1. Imagina que tienes tres pantalones y ocho camisas diferentes. Diseña un programa que te diga cuántos atuendos posibles puedes formar al combinarlos.
  2. Ahora escribe una función que calcule el número de combinaciones posibles, dados un número cualquiera de camisas y otro de pantalones.
  3. Imagina que puedes escoger entre dos promociones para comprar azúcar. La primera opción te permite comprar un kilo, cuyo precio original es 16 pesos, con un 10% de descuento. La segunda opción es comprar un kilo y recibir gratis un 10% más de azúcar. ¿Cómo puedes saber qué opción te conviene más? Haz un programa que lo calcule.
  4. Ahora has una función que te diga qué opción es la mejor, dado el precio de la unidad, el porcentaje del descuento para la opción 1 y el porcentaje de regalo para la opción 2. Córrela para los siguientes artículos:
  • Tortillas, a 12 pesos el kilo, 5% de descuento o 10% de regalo.
  • Café, a 40 pesos los 300 gramos, 30% de descuento o 33% más de producto
  • Harina para hot cakes (ay, qué rico), a 58 pesos el kilo, 40% de descuento o 35% gratis.
  1. Para empezar con algo más abstracto, diseña una función que te retorne el factorial de un número dado. El factorial de un número n es: (http://schooltutoring.com/help/wp-content/uploads/sites/2/2014/04/factorial-formula.gif)
  2. Por último, haz una función que retorne el término n de la sucesión de Fibonacci.