Curso Python. Interfaces gráficas VIII. Vídeo 49
Introducción a la Calculadora en Python
Contexto del Curso
- Bienvenida al curso de programación en Python, enfocado en interfaces gráficas.
- Se está trabajando en una práctica para crear una calculadora funcional.
Funcionalidad Inicial
- Hasta ahora, se ha creado la interfaz y se pueden ingresar números que aparecen en el display.
- Se busca implementar la funcionalidad de suma entre dos valores numéricos ingresados por el usuario.
Implementación de la Suma
Comportamiento Esperado
- Al pulsar el botón de suma, el número actual debe permanecer visible mientras se introduce un segundo número.
- La calculadora necesita almacenar los números ingresados para poder realizar operaciones futuras.
Necesidades Técnicas
- Se requiere una variable global llamada
operaciónpara almacenar qué operación desea realizar el usuario (por ejemplo, "suma").
- Esta variable permitirá resetear la pantalla y gestionar las entradas del usuario adecuadamente.
Declaración y Uso de Variables
Inicialización de Variables
- La variable
operaciónse inicializa como una cadena vacía al inicio del programa.
- Al pulsar el botón de suma, esta variable debe cambiar su valor a "suma".
Creación de Funciones
- Se creará un método específico para manejar la acción del botón de suma.
- Este método actualizará la variable global
operacióncuando se pulse el botón correspondiente.
Integración con Interfaz Gráfica
Conexión con Botones
- El botón de suma debe estar vinculado a la función creada anteriormente mediante un comando que ejecute dicha función al ser presionado.
¿Cómo implementar la suma en una calculadora?
Implementación de la función de suma
- Se menciona que al pulsar el botón de suma, se debe borrar el valor anterior en pantalla y permitir la entrada de un nuevo número. Esto se implementa dentro de una función creada previamente.
- Se utiliza un condicional
ifpara verificar si la variable globaloperaciónes diferente de una cadena vacía, lo que indica que el usuario ha pulsado el botón de suma.
- Si se confirma que se ha pulsado el botón de suma, se actualiza la pantalla con el nuevo valor numérico ingresado por el usuario.
- En caso contrario, si no se ha pulsado el botón de suma, los números deben concatenarse como se hacía anteriormente.
- La funcionalidad inicial permite borrar el número anterior al pulsar "suma" y escribir un nuevo número, pero aún no concatena correctamente los valores.
Concatenación y almacenamiento
- Después de ingresar un nuevo valor tras pulsar "suma", es necesario reiniciar la variable
operacióna una cadena vacía para permitir futuras concatenaciones.
- El siguiente paso es sumar los valores numéricos introducidos. Al presionar "suma", debe almacenar y mostrar correctamente los resultados acumulados.
- Para realizar esta operación, se crea una nueva variable global llamada
resultado, que comenzará en cero y almacenará las sumas sucesivas.
Sumar valores numéricos
- La variable
resultadoserá accesible desde cualquier método del programa. Se incrementará cada vez que se pulse el botón "más".
- El método
sumanecesita recibir también esta nueva variable global para poder incrementar su valor adecuadamente cuando sea llamado al presionar "más".
- Es importante recordar que lo que aparece en pantalla es considerado texto por Python; por lo tanto, hay que convertirlo a un número entero usando la función
int.
Consideraciones finales sobre operaciones
- Al utilizar
resultado += núm, estamos abreviando la operación; esto equivale a escribir explícitamenteresultado = resultado + núm.
- Aunque inicialmente solo se trabajará con enteros, también existe la posibilidad de operar con decimales utilizando funciones específicas más adelante.
¿Cómo hacer que una calculadora sume correctamente?
Implementación de la suma en la calculadora
- Se busca que los valores numéricos se sumen y aparezcan en pantalla como lo haría una calculadora real, mostrando el resultado inmediatamente después de pulsar el botón de suma.
- Para lograr esto, se utiliza
número pantalla.setpara mostrar el valor acumulado en la variableresultado, que almacena las sumas realizadas.
- La función de suma debe recibir un parámetro que es el valor actual mostrado en pantalla. Esto se implementa al llamar a la función desde el botón de suma.
- Al realizar pruebas, se verifica que al introducir 5 + 2 y luego pulsar más, el resultado correcto (7) aparece en pantalla.
- Se menciona que al pulsar igual, debería mostrarse la suma total acumulada hasta ese momento, similar a cómo funciona una calculadora real.
Creación de la función "resultado"
- Se propone crear una nueva función llamada
el resultadopara manejar lo que ocurre cuando se pulsa el botón igual y mostrar la suma acumulada.
- Es importante evitar conflictos de nombres con variables globales; por ello, se opta por un nombre distinto para esta nueva función.
- La función debe operar con la variable global
resultado, reflejando en pantalla la suma total más el último número ingresado.
- Se explica cómo almacenar tanto el resultado acumulado como el último número introducido antes de presionar igual.
- Para obtener este valor final, es necesario convertirlo a entero usando
int, asegurando así que no sea tratado como texto.
Llamadas a funciones y ajustes finales
- Al finalizar los cálculos previos, hay que llamar a esta nueva función cuando se pulse el botón igual para actualizar correctamente los resultados mostrados.
- Tras implementar estos cambios y ejecutar nuevamente, se comprueba si al sumar 5 + 2 + 3 y luego pulsar igual muestra correctamente 10.
- Un error identificado es que tras obtener un resultado, la variable
resultadono debe acumularse indefinidamente; debe resetearse a cero después de cada operación completa.
Mejoras sugeridas
- Se sugiere mejorar la calculadora permitiendo operaciones con números decimales además de enteros. Actualmente solo permite enteros debido a limitaciones en las funciones utilizadas.
¿Cómo manejar errores en funciones?
Discusión sobre la función int y su impacto
- Se menciona que al intentar realizar una suma, el programa puede fallar cuando se encuentra con la función
int, lo que indica un problema potencial en el código.
- El presentador sugiere que, a pesar de este obstáculo, es posible continuar con las operaciones restantes después de resolver el error inicial.
- Se anima a los espectadores a personalizar sus soluciones ("maquillar esto como le gusta") para facilitar su aprendizaje práctico.
- La importancia de experimentar con diferentes enfoques es destacada como clave para un aprendizaje efectivo en programación.