def funcion1():
    print("¡Soy la función 1!")

"""
Explanation: Funciones
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.

Ejercicio 1: Función que imprime
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.
<div class="alert alert-warning">¡No olvides los dos puntos! Si el sangrado del código no avanza automáticamente, es que te los has dejado.</div>
End of explanation
"""


funcion1()

"""
Explanation: Y ahora invocamos la función con la sintaxis que ya conocemos:
End of explanation
"""


salida = funcion1()

salida

salida is None

"""
Explanation: <div class="alert alert-warning">¡Observa que no aparece `Out [2]`! Eso es porque, en realidad, la función no tiene salidas: solo una llamada a `print`. Mira lo que ocurre si intentamos asignar la salida de la función a una variable:</div>
End of explanation
"""


def funcion2():
    return "Salida de la función 2"

funcion2()

"""
Explanation: En el siguiente ejercicio vamos a ver cómo evitar esto.
Ejercicio 2: Función que devuelve
Vamos a crear ahora una función sin entradas pero con una salida. Para ello usamos la palabra clave return.
End of explanation
"""


salida = funcion2()

print(salida)

salida[4::2]  # Lo primero que se me ha venido a la cabeza

"""
Explanation: Y ahora sí podemos asignar esa salida a una variable:
End of explanation
"""


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"

print(comparar_cinco(2))

mi_numero = 7  # Aquí la variable se llama `mi_numero`
print(comparar_cinco(mi_numero))  # ¡Dentro de la función eso me da igual!

"""
Explanation: 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.
Ejercicio 3: Función de una entrada
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.
End of explanation
"""


