Lo más importante para programar, y no solo en Python, es saber organizar el código en piezas más pequeñas que hagan tareas independientes y combinarlas entre sí. Las funciones son el primer nivel de organización del código: reciben unas entradas, las procesan y devuelven unas salidas.
Como primer paso, vamos a crear una función que no recibe ninguna entrada ni produce ninguna salida, pero que imprime una frase por pantalla. Para eso emplearemos la palabra clave def, seguida del nombre de la función, y abriremos un bloque nuevo.
In [1]:
def funcion1():
print("¡Soy la función 1!")
Y ahora invocamos la función con la sintaxis que ya conocemos:
In [2]:
funcion1()
In [3]:
salida = funcion1()
In [4]:
salida
In [5]:
salida is None
Out[5]:
En el siguiente ejercicio vamos a ver cómo evitar esto.
Vamos a crear ahora una función sin entradas pero con una salida. Para ello usamos la palabra clave return.
In [6]:
def funcion2():
return "Salida de la función 2"
In [7]:
funcion2()
Out[7]:
Y ahora sí podemos asignar esa salida a una variable:
In [8]:
salida = funcion2()
In [9]:
print(salida)
In [10]:
salida[4::2] # Lo primero que se me ha venido a la cabeza
Out[10]:
Aclarado el concepto (que a veces puede quedar difuso cuando se trabaja en modo interactivo) normalmente querremos devolver valores. De esta forma podemos enlazar funciones como si fueran bloques, uno detrás de otro, y estructurar nuestro programa mucho mejor.
Vamos a crear ahora una función que compruebe si un número es mayor o menor que cinco. La salida ahora no nos importa mucho: lo importante es que al declarar los argumentos de entrada en la definición de la función, podremos usarlos dentro de ella con el nombre que decidamos.
In [11]:
def comparar_cinco(num):
if num < 5:
return "El número es menor que cinco"
elif num == 5:
return "El número es igual a cinco"
else:
return "El número es mayor que cinco"
In [12]:
print(comparar_cinco(2))
In [13]:
mi_numero = 7 # Aquí la variable se llama `mi_numero`
print(comparar_cinco(mi_numero)) # ¡Dentro de la función eso me da igual!
En esta clase hemos visto cómo crear funciones que encapsulen tareas de nuestro programa
Referencias