Divisor de gastos
Dex Bueno. Acabamos de volver de una parada de reabastecimiento y cada uno pagó cosas distintas, y ahora nadie se pone de acuerdo sobre quién le debe a quién. Siempre se vuelve un lío. ¿Puedes armar algo donde anotemos quién pagó qué y nos diga cómo saldar cuentas? Por el bien de la moral de la tripulación 🙄
Lo que vas a construir
Add an expense (or 'done' to settle up):
Who paid? Sofía
How much? 45.00
Add an expense (or 'done' to settle up):
Who paid? Mateo
How much? 30.00
Add an expense (or 'done' to settle up): done
Total: £75.00 split between 2 people (£37.50 each)
Sofía is owed £7.50
Mateo owes £7.50Lo que vas a necesitar
- Números y aritmética — dividir el total, calcular balances
- Diccionarios — llevar registro de cuánto pagó cada persona
- Listas — almacenar cada gasto a medida que los recolectas
- Flujo de control — el bucle de entrada que corre hasta que el usuario escribe "done"
- Funciones — separar la recolección del cálculo hace que la lógica sea más clara
Pistas
Lleva registro de lo que pagó cada persona. Un diccionario con nombres como claves y montos como valores facilita acumular los totales por persona.
La parte justa es simple. El monto total dividido por el número de personas. La diferencia entre lo que alguien pagó y su parte justa te dice su balance: positivo significa que le deben, negativo significa que debe.
Recolecta primero, calcula después. Reúne todos los gastos en el bucle. Una vez que el usuario escriba "done", haz todos los cálculos de una sola vez.
Yendo más lejos
Una vez que lo básico funcione:
- Más de dos personas. La lógica es la misma — calcula el balance de cada uno respecto a la parte justa. Muestra el resultado de cada persona.
- Gastos detallados. Permite que el usuario agregue una descripción a cada gasto, luego imprime una lista detallada antes del saldo.
- Quién le paga a quién. En vez de solo mostrar balances, calcula el conjunto mínimo de transferencias necesarias para saldar a todos.

