Una función es un bloque de código con un nombre, que agrupa una tarea específica y que puede ejecutarse (o “llamarse”) varias veces sin necesidad de reescribir todo.
📌 Ejemplo mental:
Imaginá que querés preparar café. No necesitás repasar cada paso cada vez: simplemente decís “preparar café”, y sabés que eso implica hervir agua, poner el filtro, el café, etc.
En programación, una función es como esa receta: se define una vez, y se puede usar muchas.
🎯 ¿Por qué usar funciones?
- Para organizar el código mejor.
- Para evitar repeticiones.
- Para dividir un problema grande en partes más simples.
- Para que tu programa sea más legible y reutilizable.
🛠️ Definición y llamado de funciones
🔹 Definir una función
Definir una función significa darle un nombre y decir qué hace.
En términos simples: le enseñás al programa una nueva palabra que representa una acción.
En Python, se hace con la palabra clave
def
, seguida del nombre y los paréntesis.
🔹 Llamar (usar) una función
Una vez definida, podés llamarla cuando la necesites. Eso activa el código que contiene.
Ejemplo conceptual:
Definís la función saludar()
.
Después, simplemente escribís saludar()
cada vez que quieras que ocurra la acción.
🧠 Definir ≠ ejecutar. Una función no hace nada hasta que la llamás.
📥 Parámetros y argumentos
🔸 ¿Qué son los parámetros?
Los parámetros son variables que se definen cuando creás la función. Le indican qué tipo de datos espera para poder funcionar.
🔸 ¿Y los argumentos?
Los argumentos son los valores reales que le das a la función cuando la llamás.
Ejemplo mental:
Imaginá una receta que dice: “usá X gramos de harina”.
→ “X” es el parámetro (lo que espera).
→ “200 gramos” es el argumento (lo que le das).
⚠️ Es fundamental que los parámetros y argumentos coincidan correctamente.
🔄 Retorno de valores
Una función no solo puede hacer cosas, sino también devolver un resultado.
Eso se llama retorno (o return en inglés).
📌 ¿Por qué es útil?
Porque podés usar el resultado que calculó la función en otra parte del programa.
Ejemplo conceptual:
Una función que suma dos números no solo los muestra, sino que devuelve la suma para que la puedas usar en otro cálculo.
🧠 Importante: una función puede devolver un solo valor, pero ese valor puede ser una lista, una cadena, un número o incluso otra función.
📦 Ámbito (scope) de variables
🧭 ¿Qué es el ámbito?
El ámbito de una variable define dónde puede usarse y dónde no.
En otras palabras: una variable solo “vive” dentro de ciertos espacios.
Hay dos ámbitos principales:
-
Local: dentro de una función.
Una variable definida ahí solo existe mientras se ejecuta esa función. -
Global: fuera de cualquier función.
Puede usarse en todo el programa, incluso dentro de funciones (aunque con limitaciones).
Ejemplo mental:
Una llave que usás solo en tu casa no abre otra casa. Esa es una variable local.
Una llave maestra que abre todas las puertas sería una variable global.
⚠️ No es buena práctica abusar de variables globales, porque puede generar confusión y errores difíciles de encontrar.
🧰 Funciones integradas vs. funciones definidas por el usuario
🔹 Funciones integradas (built-in)
Python ya viene con muchas funciones útiles listas para usar.
Ejemplos conocidos son:
print()
– para mostrar algo en pantallalen()
– para saber la longitud de una lista o cadenaint()
,str()
– para convertir tipos de datos
No necesitás definirlas: ya existen.
🔹 Funciones definidas por el usuario
Estas son las funciones que vos creás para resolver necesidades específicas.
Las definís con def
, les ponés nombre, y las usás como quieras.
Ventajas:
- Te permiten personalizar el comportamiento del programa.
- Ayudan a reducir la repetición de código.
- Facilitan la modularidad: dividir un programa en partes más fáciles de mantener.
✅ Cierre del módulo
Las funciones son el corazón de cualquier programa organizado y escalable. Te permiten pensar en términos de acciones concretas, reutilizables, y con entradas y salidas claras.
Ahora que sabés cómo definirlas, usarlas, darles datos y obtener resultados, estás listo para crear programas más estructurados y potentes.