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.
# 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.
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.
