Parte 17 — MiniFinance del capítulo
6.78 Código actualizado
Configuración de MiniFinance
NOMBRE_APLICACION = "MINIFINANCE" VERSION = "0.2"
nombre_usuario = "Daniel" nombre_cuenta = "Cuenta principal" moneda = "CRC"
saldo_inicial = 1_000 primer_ingreso = 750 primer_gasto = 200 segundo_gasto = 125
total_ingresos = primer_ingreso total_gastos = primer_gasto + segundo_gasto saldo_actual = saldo_inicial + total_ingresos - total_gastos
cuenta_activa = True datos_guardados = False ultimo_movimiento = None
Mostrar la pantalla principal
print("=" * 32) print(" ", NOMBRE_APLICACION) print("=" * 32) print("Versión:", VERSION) print() print("Usuario:", nombre_usuario) print("Cuenta:", nombre_cuenta) print("Moneda:", moneda) print() print("Saldo inicial:", saldo_inicial, moneda) print("Ingresos:", total_ingresos, moneda) print("Gastos:", total_gastos, moneda) print("Saldo actual:", saldo_actual, moneda) print() print("Cuenta activa:", cuenta_activa) print("Datos guardados:", datos_guardados) print("Último movimiento:", ultimo_movimiento) 6.79 Resultado esperado ================================ MINIFINANCE ================================ Versión: 0.2
Usuario: Daniel Cuenta: Cuenta principal Moneda: CRC
Saldo inicial: 1000 CRC Ingresos: 750 CRC Gastos: 325 CRC Saldo actual: 1425 CRC
Cuenta activa: True Datos guardados: False Último movimiento: None 6.80 Revisar los tipos del proyecto
Agrega temporalmente:
print() print("=== TIPOS DE DATOS ===") print("nombre_usuario:", type(nombre_usuario)) print("saldo_actual:", type(saldo_actual)) print("cuenta_activa:", type(cuenta_activa)) print("ultimo_movimiento:", type(ultimo_movimiento))
Resultado:
=== TIPOS DE DATOS === nombre_usuario: <class 'str'> saldo_actual: <class 'int'> cuenta_activa: <class 'bool'> ultimo_movimiento: <class 'NoneType'>
Después de comprobarlos, puedes eliminar esta sección.
6.81 Reto del capítulo
Crea una versión de MiniFinance que contenga los siguientes datos:
Nombre del usuario Nombre de la cuenta Moneda Número de cuenta Saldo inicial Ingreso recibido como texto Gasto recibido como texto Cuenta activa Descripción opcional
Utiliza estos valores:
Usuario: Andrea Cuenta: Ahorros Moneda: CRC Número de cuenta: 001234 Saldo inicial: 2000 Ingreso recibido: "750" Gasto recibido: "325" Cuenta activa: True Descripción: sin valor
Requisitos:
El número de cuenta debe guardarse como str. El saldo inicial debe ser int. El ingreso comienza como str. El gasto comienza como str. Convierte el ingreso y el gasto antes de calcular. La cuenta activa debe ser bool. La descripción debe comenzar como None. Utiliza type() para comprobar al menos cuatro variables. Calcula el saldo final. Muestra todos los datos.
Resultado financiero esperado:
Saldo final: 2425 CRC
Cálculo:
2000 + 750 - 325 = 2425 6.82 Posible solución
Configuración
NOMBRE_APLICACION = "MINIFINANCE" VERSION = "0.2"
nombre_usuario = "Andrea" nombre_cuenta = "Ahorros" moneda = "CRC" numero_cuenta = "001234"
saldo_inicial = 2000
ingreso_texto = "750" gasto_texto = "325"
cuenta_activa = True descripcion = None
Convertir montos
ingreso = int(ingreso_texto) gasto = int(gasto_texto)
saldo_final = saldo_inicial + ingreso - gasto
Mostrar información
print("=" * 32) print(" ", NOMBRE_APLICACION) print("=" * 32) print("Versión:", VERSION) print() print("Usuario:", nombre_usuario) print("Cuenta:", nombre_cuenta) print("Número:", numero_cuenta) print("Moneda:", moneda) print() print("Saldo inicial:", saldo_inicial, moneda) print("Ingreso:", ingreso, moneda) print("Gasto:", gasto, moneda) print("Saldo final:", saldo_final, moneda) print() print("Cuenta activa:", cuenta_activa) print("Descripción:", descripcion)
Comprobar tipos
print() print("=== TIPOS DE DATOS ===") print("numero_cuenta:", type(numero_cuenta)) print("saldo_inicial:", type(saldo_inicial)) print("ingreso_texto:", type(ingreso_texto)) print("ingreso convertido:", type(ingreso)) print("cuenta_activa:", type(cuenta_activa)) print("descripcion:", type(descripcion)) 6.83 Lista de comprobación
Antes de continuar, deberías poder marcar lo siguiente:
[ ] Sé qué es un tipo de dato. [ ] Sé qué significa str. [ ] Sé qué significa int. [ ] Sé qué significa float. [ ] Sé qué significa bool. [ ] Entiendo para qué sirve None. [ ] Comprendo la diferencia entre 5 y "5". [ ] Sé que los textos utilizan comillas. [ ] Sé que True y False no llevan comillas. [ ] Sé consultar un tipo con type(). [ ] Puedo convertir texto a int. [ ] Puedo convertir texto a float. [ ] Puedo convertir números a str. [ ] Entiendo qué es un TypeError. [ ] Entiendo qué es un ValueError. [ ] Sé que int() elimina la parte decimal. [ ] Sé que input() devolverá texto. [ ] Comprendo por qué los float requieren cuidado con dinero. [ ] Puedo elegir tipos adecuados para MiniFinance.
Si alguna respuesta es negativa, vuelve a practicar la sección correspondiente.
6.84 Qué aprendiste
En este capítulo aprendiste:
Qué son los tipos de datos. Cómo Python diferencia distintas clases de información. Qué es un str. Qué es un int. Qué es un float. Qué es un bool. Qué representa None. La diferencia entre números y texto. Cómo concatenar cadenas. Cómo repetir texto. Cómo realizar operaciones numéricas. Cómo consultar tipos mediante type(). Cómo convertir valores con str(), int() y float(). Por qué algunas conversiones fallan. Qué son TypeError y ValueError. Por qué los números decimales pueden ser delicados. Cómo representar correctamente los datos financieros. Cómo elegir un tipo según el significado de la información. Cómo preparar MiniFinance para recibir datos del usuario.
MiniFinance ya contiene diferentes clases de información correctamente organizadas.
Sin embargo, sus valores todavía están escritos directamente dentro del código.
En el siguiente capítulo permitiremos que la persona que utiliza el programa escriba sus propios datos.