AhorraYa
Taller 3: "AhorraYa" en Google Colab
Objetivo: Desarrollar una aplicación en Python que permita planificar metas de ahorro personal, registrar depósitos y visualizar el progreso con gráficas.
Paso 1: Estructura de metas de ahorro
metas = []
Paso 2: Registrar una meta
def agregar_meta(nombre, objetivo):
meta = {
"nombre": nombre,
"objetivo": objetivo,
"ahorrado": 0
}
metas.append(meta)
print(f"✔️ Meta '{nombre}' agregada con objetivo de ${objetivo}.")
# Ejemplo:
agregar_meta("Viaje a Cartagena", 1500000)
Paso 3: Registrar depósitos
def depositar(nombre_meta, monto):
for meta in metas:
if meta["nombre"] == nombre_meta:
meta["ahorrado"] += monto
print(f"💵 Se han depositado ${monto} en '{nombre_meta}'. Total: ${meta['ahorrado']}")
return
print("❌ Meta no encontrada.")
# Ejemplo:
depositar("Viaje a Cartagena", 300000)
Paso 4: Progreso y alertas
def mostrar_progreso():
for meta in metas:
porcentaje = (meta["ahorrado"] / meta["objetivo"]) * 100
print(f"🎯 {meta['nombre']}: {porcentaje:.1f}% completado ({meta['ahorrado']} / {meta['objetivo']})")
if porcentaje >= 100:
print("✅ ¡Meta alcanzada!")
# Mostrar progreso
mostrar_progreso()
Paso 5: Visualización con Matplotlib
import matplotlib.pyplot as plt
def graficar_metas(metas):
nombres = [meta["nombre"] for meta in metas]
ahorrado = [meta["ahorrado"] for meta in metas]
objetivos = [meta["objetivo"] for meta in metas]
x = range(len(metas))
plt.bar(x, objetivos, label='Objetivo', alpha=0.6)
plt.bar(x, ahorrado, label='Ahorrado', alpha=0.9)
plt.xticks(x, nombres, rotation=45, ha='right')
plt.title("Progreso de metas de ahorro")
plt.legend()
plt.tight_layout()
plt.show()
# Mostrar gráfica
graficar_metas(metas)
Paso 6: Guardar y cargar metas
import json
def guardar_metas(nombre_archivo, datos):
with open(nombre_archivo, 'w') as archivo:
json.dump(datos, archivo)
def cargar_metas(nombre_archivo):
global metas
with open(nombre_archivo, 'r') as archivo:
metas = json.load(archivo)
# Guardar
guardar_metas("metas_ahorro.json", metas)
# Cargar
# cargar_metas("metas_ahorro.json")
Actividad final del estudiante
- Crear al menos 3 metas diferentes.
- Registrar múltiples depósitos en distintas metas.
- Consultar y mostrar el progreso.
- Generar la gráfica de comparación.
- Guardar las metas y simular una carga desde archivo.
- Reflexión: ¿Cómo se podría convertir esta lógica en una app para adolescentes o adultos jóvenes?
Comentarios
Publicar un comentario