Paso 2: Funciones Básicas¶
En este paso, añadiremos las funciones fundamentales que manejan la entrada de datos y los cálculos básicos de la calculadora.
📦 Código a añadir¶
Añade el siguiente código después del código del Paso 1 en tu archivo calculadora.py:
def escribir(valor):
entrada.insert(tk.END, valor)
def limpiar():
entrada.delete(0, tk.END)
def borrar():
if entrada.get():
entrada.delete(len(entrada.get())-1)
def calcular():
try:
expresion = entrada.get()
# Reemplazar funciones para eval
expresion = expresion.replace('sin(', 'math.sin(math.radians(')
expresion = expresion.replace('cos(', 'math.cos(math.radians(')
expresion = expresion.replace('tan(', 'math.tan(math.radians(')
expresion = expresion.replace('log(', 'math.log10(')
expresion = expresion.replace('ln(', 'math.log(')
expresion = expresion.replace('√(', 'math.sqrt(')
expresion = expresion.replace('π', str(math.pi))
expresion = expresion.replace('e', str(math.e))
resultado = eval(expresion)
limpiar()
escribir(str(resultado))
except:
limpiar()
escribir("Error")
🔍 Explicación detallada¶
Función escribir(valor)¶
- Propósito: Añade texto al final del campo de entrada
- Parámetro:
valor- texto a insertar (número, operador, etc.) - Funcionamiento: Usa
tk.ENDpara insertar al final del texto actual
Función limpiar()¶
- Propósito: Borra todo el contenido del campo de entrada
- Funcionamiento: Elimina desde la posición 0 hasta el final (
tk.END) - Uso: Botón "C" (Clear) y después de cálculos
Función borrar()¶
- Propósito: Elimina el último carácter ingresado (función DEL/Backspace)
- Funcionamiento:
- Verifica que hay contenido con
entrada.get() - Elimina el último carácter usando
delete(posición_final-1) - Mejora: Incluye validación para evitar errores en campos vacíos
Función calcular()¶
- Propósito: Evalúa la expresión matemática y muestra el resultado
- Características avanzadas:
- Reemplazos inteligentes: Convierte texto de botones a funciones Python
sin(→math.sin(math.radians((convierte grados a radianes)log(→math.log10((logaritmo base 10)π→ valor numérico de pi
- Manejo de errores: Muestra "Error" si la expresión es inválida
- Limpieza automática: Borra el contenido anterior y muestra el resultado
🎯 Casos de uso¶
| Función | Caso de uso | Ejemplo |
|---|---|---|
escribir() |
Botones numéricos y operadores | escribir("5"), escribir("+") |
limpiar() |
Botón Clear, después de cálculos | Resetear la calculadora |
borrar() |
Corrección de errores de digitación | Borrar último dígito |
calcular() |
Botón igual, obtener resultado | Evaluar "2+3*4" |
⚠️ Consideraciones importantes¶
- Seguridad de
eval(): Aunqueeval()puede ser peligroso, aquí es seguro porque: - Solo acepta entrada del usuario a través de la interfaz
- Reemplazamos texto antes de evaluar
-
Manejamos excepciones
-
Conversión de grados: Las funciones trigonométricas usan radianes internamente, pero los usuarios esperan grados
✅ Verificación¶
Después de añadir este código: 1. Guarda el archivo 2. El código aún no ejecutará una ventana (necesitas los siguientes pasos) 3. Verifica que no hay errores de sintaxis
➡️ Siguiente paso¶
Continúa con Paso 3: Funciones Científicas para añadir las funciones matemáticas avanzadas.