Dominar las funciones en Python es uno de los pasos más importantes para escribir código limpio, reutilizable y fácil de mantener. A lo largo de esta explicación se construye paso a paso una calculadora con operaciones básicas, aplicando el principio de divide y vencerás directamente en la práctica.
¿Qué significa "divide y vencerás" en Python?
Este principio consiste en dividir el código en porciones más pequeñas para mejorar la legibilidad, el mantenimiento y la reutilización [0:06]. En lugar de repetir bloques de lógica, se encapsulan dentro de funciones que cumplen una tarea específica. Así se evita la duplicación y el código se vuelve más organizado.
Para definir una función en Python se usa la palabra reservada def, seguida del nombre de la función y los paréntesis donde se colocan los parámetros [0:25].
python
def saludar():
print("Hola, mundo")
saludar()
Un detalle fundamental: crear una función no la ejecuta automáticamente. Es necesario llamarla explícitamente después de definirla [0:48].
¿Cómo funcionan los parámetros y argumentos?
Los parámetros son las variables que una función espera recibir. Cuando se invoca la función, los valores concretos que se envían se conocen como argumentos [1:05].
python
def saludar(name):
print(f"Hola, {name}")
saludar("Carly")
saludar("Diego")
Se pueden agregar múltiples parámetros separándolos con comas. Si la función espera dos datos y solo se envía uno, Python lanzará un error indicando que falta un argumento posicional (missing positional argument) [2:00].
¿Qué son los valores por defecto y los parámetros posicionales?
Existen situaciones donde no siempre se dispone de toda la información. Para esos casos se asigna un valor predeterminado directamente en la definición del parámetro [2:25]:
python
def saludar(name, last_name="no tiene apellido"):
print(f"Hola, {name} {last_name}")
saludar("Diego")
Si no se envía last_name, Python usará el texto por defecto. Además, es posible enviar los argumentos en orden diferente siempre que se haga referencia al nombre del parámetro [3:05]:
python
saludar(last_name="Florida", name="Carly")
Esto se conoce como parámetros con nombre o keyword arguments, y el resultado será idéntico al orden original.
¿Cómo construir una calculadora con funciones en Python?
El ejercicio práctico consiste en crear cuatro funciones aritméticas que retornan un valor en lugar de imprimirlo. La palabra clave return permite devolver el resultado de la operación para usarlo posteriormente [3:40].
python
def suma(a, b):
return a + b
def resta(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
return a / b
Una buena práctica es dejar un salto de línea entre funciones para mejorar la legibilidad [4:05].
¿Cómo crear un menú interactivo con while True?
La función principal calculadora utiliza un bucle while True para mantener el programa activo hasta que el usuario decida salir [4:35]. Se presenta un menú con print y se recibe la selección mediante input:
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-5): ")
Cuando la opción es "5", se ejecuta un break que rompe el ciclo infinito y finaliza el programa [8:15]. Sin este break, el código seguiría iterando sin detenerse.
¿Por qué importa el tipo de dato en Python?
Uno de los errores más comunes es el manejo incorrecto de tipos de datos. La entrada de input siempre es un string, por lo que al comparar con cadenas como "1" o "5" se debe mantener la coherencia. Para los números de la operación, se realiza un casting a float con el fin de permitir decimales [8:50]:
python
if option in ["1", "2", "3", "4"]:
num1 = float(input("Ingrese el primer número: "))
num2 = float(input("Ingrese el segundo número: "))
Después se evalúa la opción seleccionada y se llama a la función correspondiente:
python
if option == "1":
print(f"La suma es: {suma(num1, num2)}")
elif option == "2":
print(f"La resta es: {resta(num1, num2)}")
Si el usuario ingresa un valor fuera del rango válido, un bloque else muestra el mensaje "Opción no válida, por favor intenta de nuevo" y el ciclo se repite [7:50].
Al ejecutar la calculadora se verifica cada operación: sumar 10 más 4 devuelve 14, restar 70.6 menos 0.6 devuelve 70, y la opción cinco cierra el programa correctamente [9:30].
Dividir la lógica en funciones pequeñas y especializadas no solo facilita la depuración, sino que entrena una habilidad esencial: pensar de forma modular. ¿Has aplicado este enfoque en tus propios proyectos? Comparte tu experiencia y tus variaciones de la calculadora.