4.1 Funciones: Crea tus propias herramientas

Imagina que en cada Mystery que resuelves tienes que aplicar la misma fórmula matemática compleja. En lugar de escribirla 20 veces, creas una función llamada calcular_coordenada() y la invocas cuando la necesites.

1. ¿Cómo se define una función?

Usamos la palabra clave def, seguida del nombre de la función y paréntesis. Al igual que con los bucles, el contenido debe estar indentado.

saludo_geocacher.py
# Definimos la función
def saludar(nombre):
    print("¡Hola " + nombre + "!")
    print("Suerte en tu búsqueda hoy.")

# Usamos la función (llamada)
saludar("Paco")
saludar("Marta")

2. Retornar valores (return)

A veces no queremos que la función imprima algo, sino que nos **devuelva** un valor para guardarlo en una variable. Usamos return.

conversor_millas.py
def a_kilometros(millas):
    resultado = millas * 1.609
    return resultado

# Guardamos lo que nos devuelve la "máquina"
distancia_ruta = a_kilometros(5)
print("La ruta tiene " + str(distancia_ruta) + " km.")

3. Ejemplo práctico: El Proyector de Waypoints

Crear una función que nos devuelva un punto desplazado nos ahorrará muchísimos errores de cálculo manual.

🛠️ Reto: Tu primera función de cálculo

Copia este código en el área de la izquierda. Es una pequeña calculadora que suma un "offset" a una coordenada base. Úsala para resolver dos puntos diferentes:

def aplicar_offset(base, extra):
    final = base + (extra / 1000)
    return final

# Calculamos dos puntos diferentes usando la misma "máquina"
punto_norte = aplicar_offset(40.416, 250)
punto_este = aplicar_offset(3.703, 115)

print("Coordenadas finales: N " + str(punto_norte) + " W " + str(punto_este))

Dale a "Ejecutar" y mira cómo una sola función sirve para procesar múltiples datos en la consola derecha.