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.

¿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 [5]:
def cadena(j):
    print(j*5)
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