E1 · ¿En cuántos meses pago mi deuda?
while + validación · ★★Pide con input() el monto de la deuda, la tasa de interés mensual (en %, p. ej. 2) y la cuota. Muestra en cuántos meses se paga y cuánto se pagó de intereses. Si la cuota no alcanza a cubrir el interés del primer mes, avisa y no entres al bucle.
Pista
Reutiliza la traza 2. Convierte la tasa: tasa = float(texto) / 100. Acumula el interés en intereses_totales.
Solución
saldo = float(input("Deuda: $"))
tasa = float(input("Interés mensual (%): ")) / 100
cuota = float(input("Cuota: $"))
if saldo <= 0 or cuota <= 0 or tasa < 0:
print("Los datos deben ser positivos.")
elif cuota <= saldo * tasa:
print("La cuota no cubre ni el interés: la deuda nunca se pagaría.")
else:
meses = 0
intereses_totales = 0.0
while saldo > 0:
meses = meses + 1
interes = round(saldo * tasa, 2)
intereses_totales = intereses_totales + interes
saldo = saldo + interes
if saldo < cuota:
saldo = 0
else:
saldo = round(saldo - cuota, 2)
print(f"Se paga en {meses} meses; intereses: ${intereses_totales:,.2f}")
Deuda: $1000
Interés mensual (%): 2
Cuota: $300
Se paga en 4 meses; intereses: $45.95
Verificación: coincide con la traza 2 ($45.95). Prueba la cuota de $15 (debe avisar sin colgarse) y la de $20 exacta (la cuota iguala el interés: también debe avisar, por eso la condición es <=). Aquí float(input()) todavía se detiene si escriben letras; para evitarlo, valida con la técnica de la semana 2 o espera a try en la semana 7.