AhorraYa

Taller 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

Entradas más populares de este blog

Librerías para Contabilidad

Variables Prohibidas

Dataframes