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