Aprender a usar funciones en Python te permite dividir tu código en bloques reutilizables, más legibles y fáciles de mantener. Esta guía es para quien empieza a programar y quiere dominar el principio de divide y vencerás aplicado a la lógica de programación.
En Python, las funciones se construyen con la palabra reservada def, seguida del nombre de la función y los parámetros que necesita para operar. Este enfoque evita duplicar lógica y prepara tu código para escalar.
¿Cómo se define una función en Python?
La estructura básica usa def, un nombre descriptivo, paréntesis con parámetros opcionales y dos puntos para abrir el bloque indentado [01:05].
python
def saludar():
print("Hola mundo")
saludar()
Si solo defines la función pero no la llamas al final, no obtendrás ninguna respuesta al ejecutar. La llamada saludar() es la que dispara la ejecución del bloque.
¿Por qué mi función no imprime nada en Python? Porque definir una función con def solo la registra en memoria. Necesitas invocarla escribiendo su nombre seguido de paréntesis para que se ejecute.
¿Cómo paso parámetros y argumentos a una función?
Los parámetros viven dentro de los paréntesis y representan la información que la función necesita para trabajar. Al llamarla, pasas los argumentos correspondientes.
Si olvidas un argumento, Python lanza un error de missing positional argument. Para evitarlo puedes usar valores por defecto directamente en la definición [04:30]:
python
def saludar(name, last_name="no tiene apellido"):
print(f"Hola {name}, {last_name}")
También existen los argumentos nombrados, que te permiten pasar los parámetros en cualquier orden si haces referencia explícita al nombre:
python
saludar(last_name="Florida", name="Carly")
¿Qué diferencia hay entre parámetro y argumento?
El parámetro es la variable declarada en la definición de la función. El argumento es el valor real que envías cuando la invocas. Es una distinción pequeña, pero ayuda a leer mejor la documentación de cualquier librería.
¿Cómo construir una calculadora con funciones en Python?
Un caso clásico para entender el poder de las funciones es una calculadora con las cuatro operaciones básicas. Cada operación vive en su propia función y devuelve un valor con return en lugar de imprimirlo [06:20].
python
def suma(a, b):
return a + b
def restar(a, b):
return a - b
def multiply(a, b):
return a * b
def dividir(a, b):
return a / b
Usar return es clave: la función entrega el resultado para que otra parte del código lo use, en vez de mostrarlo directamente en pantalla. Esto te da flexibilidad para encadenar operaciones o guardar el resultado en variables.
¿Cuál es la diferencia entre print y return en una función?print muestra un valor en consola y termina ahí. return devuelve el valor a quien llamó la función para seguir trabajando con él.
¿Cómo orquestar varias funciones desde una función principal?
La función calculadora() actúa como controlador. Usa un bucle while True para mantener el menú activo, captura la opción del usuario con input() y delega cada cálculo a la función correspondiente.
python
def calculadora():
while True:
print("Seleccione una operación")
print("1. Suma")
print("2. Resta")
print("3. Multiplicación")
print("4. División")
print("5. Salir")
option =input("Ingrese su opción (1/2/3/4/5): ")if option =="5":print("Saliendo de la calculadora")break elif option in("1","2","3","4"): number1 =float(input("Ingrese el primer número: ")) number2 =float(input("Ingrese el segundo número: "))if option =="1":print("La suma es:",suma(number1, number2)) elif option =="2":print("La resta es:",restar(number1, number2)) elif option =="3":print("La multiplicación es:",multiply(number1, number2)) elif option =="4":print("La división es:",dividir(number1, number2))else:print("Opción no válida, por favor intenta de nuevo")
calculadora()
Fíjate en dos detalles que marcan la diferencia:
El input se compara como string ("5"), no como entero, para evitar errores de conversión.
El break es el que rompe el while True cuando el usuario elige salir.
Los números se convierten a float para aceptar decimales como 70.6.
¿Por qué importa dividir el código en funciones?
Dividir el código en funciones no es solo estética. Es una habilidad lógica que mejora tres cosas concretas:
Legibilidad: cada función tiene un nombre que explica qué hace.
Mantenimiento: si la suma falla, sabes exactamente dónde corregir.
Reutilización: puedes invocar suma(10, 4) desde cualquier parte sin reescribir la lógica.
El resultado al ejecutar la calculadora con la opción uno y los valores 10 y 4 es 14. Con la opción dos, 70.6 menos 0.6 devuelve 70. Pequeñas piezas, gran control.
¿Qué función vas a escribir como tu próximo ejercicio? Cuéntame en los comentarios qué operación o utilidad quieres convertir en una función reutilizable.