Python Básico para Fútbol

Módulo 6: Funciones - Creando jugadas ensayadas

La pizarra táctica: diseñando jugadas reutilizables

Hasta ahora, hemos escrito código que se ejecuta de arriba hacia abajo. En el último módulo, aprendimos a repetir un bloque de código con bucles. Ahora, vamos a aprender a guardar un bloque de código para poder usarlo cuando queramos, donde queramos y tantas veces como queramos. Esto se logra con las funciones.

Piensa en una función como una jugada ensayada que diseñas en la pizarra táctica. En lugar de explicarle a tus jugadores cada pequeño detalle de un córner cada vez que hay uno, simplemente dices: “¡Ejecutad la jugada ‘Tormenta del Desierto’!”. Los jugadores ya saben qué hacer. Una función en Python es exactamente eso: un bloque de código con un nombre que realiza una tarea específica cuando lo “llamas”.

Escribir funciones en Python es la base del código limpio y reutilizable. Te permite resolver un problema una vez y luego aplicar esa solución en múltiples lugares, haciendo tu análisis de datos mucho más organizado.

Definiendo tu primera jugada: la palabra clave def

Para crear o “definir” una función, usamos la palabra clave def, seguida del nombre que le queramos dar a nuestra función y un par de paréntesis (). Al igual que con los bucles, todo el código que pertenece a la función debe estar indentado.

Vamos a crear una función muy simple que simule el famoso canto de Anfield. Abre tu archivo modulo-6.py en VS Code:

# Definimos la función
def cantar_ynwa():
    print("You'll Never Walk Alone")
    print("Walk on, walk on, with hope in your heart")

# Ahora, "llamamos" a la función para que se ejecute
print("Suena el himno en Anfield:")
cantar_ynwa()

Salida:

Suena el himno en Anfield:
You'll Never Walk Alone
Walk on, walk on, with hope in your heart

Como puedes ver, el código dentro de cantar_ynwa() no se ejecuta hasta que la llamamos por su nombre. Podríamos llamarla varias veces y se ejecutaría cada vez.

Añadiendo dinamismo: parámetros en las funciones

Nuestra primera función es útil, pero siempre hace lo mismo. ¿Y si quisiéramos una jugada que funcione de forma ligeramente diferente dependiendo del jugador? Para esto usamos los parámetros. Un parámetro es una variable especial que pasamos a la función cuando la llamamos, para que pueda usar ese dato en su interior.

Vamos a crear una función que anuncie la alineación de un jugador.

# 'nombre' y 'dorsal' son los parámetros
def anunciar_jugador(nombre, dorsal):
    print(f"Con el número {dorsal}, ¡aquí está {nombre}!")

# Ahora llamamos a la función pasándole los datos (argumentos)
anunciar_jugador("Mohamed Salah", 11)
anunciar_jugador("Darwin Núñez", 9)
anunciar_jugador("Luis Díaz", 7)

Analicemos esto:

  1. def anunciar_jugador(nombre, dorsal):: Al definir la función, especificamos entre paréntesis los nombres de las variables que esperamos recibir.

  2. print(f"..."): Estamos usando una “f-string”, una forma muy útil en Python de incluir variables directamente dentro de un texto (solo tienes que poner una f antes de las comillas).

  3. anunciar_jugador("Mohamed Salah", 11): Al llamar a la función, le pasamos los valores que tomarán los parámetros nombre y dorsal en esa ejecución específica.

Salida:

Con el número 11, ¡aquí está Mohamed Salah!
Con el número 9, ¡aquí está Darwin Núñez!
Con el número 7, ¡aquí está Luis Díaz!

Hemos creado una “plantilla” de código reutilizable que podemos usar para cualquier jugador, haciendo nuestro programa mucho más flexible y legible.

La clave de la organización

Las funciones son la herramienta principal para organizar tu código. A medida que tus análisis se vuelvan más complejos, empezarás a dividir tu lógica en pequeñas funciones que realizan tareas específicas: una función para cargar datos, otra para limpiar los nombres de los jugadores, otra para generar un gráfico, etc.

Has aprendido a crear tus propias “jugadas ensayadas”. En el próximo módulo, daremos el siguiente paso lógico y nos introduciremos en el entorno de trabajo preferido por los analistas para experimentar y combinar estas funciones: los Jupyter Notebooks.