CODEZEROINTERACTIVE

Chapter 9 / 15

Parte 15 — Validar un gasto completo

Condiciones con if, else y elif, validaciones, decisiones de menú y reglas para MiniFinance.

Lesson 1650%

16 / 26 lessons in this chapter

Parte 15 — Validar un gasto completo

1 / 1 in this part

Current chapter

Chapter 9 — Condiciones: enseñar al programa a tomar decisiones

Self-paced

Parte 15 — Validar un gasto completo

Reglas del gasto

Un gasto puede requerir:

  1. Que la cuenta esté activa.
  2. Que la cuenta no esté bloqueada.
  3. Que el monto sea mayor que cero.
  4. Que el gasto no supere el saldo.

Una sola condición combinada

python terminal
cuenta_activa = True
cuenta_bloqueada = False
saldo_actual = 1_000
gasto = 600

if (
    cuenta_activa
    and not cuenta_bloqueada
    and gasto > 0
    and gasto <= saldo_actual
):
    print("Gasto aprobado.")
else:
    print("Gasto rechazado.")

Problema de un mensaje genérico

El código anterior solo muestra:

text terminal
Gasto rechazado.

Pero no explica por qué.

Podemos utilizar elif para mostrar una causa específica.


Validación detallada

python terminal
cuenta_activa = True
cuenta_bloqueada = False
saldo_actual = 1_000
gasto = 1_500

if not cuenta_activa:
    print("La cuenta está inactiva.")
elif cuenta_bloqueada:
    print("La cuenta está bloqueada.")
elif gasto <= 0:
    print("El gasto debe ser mayor que cero.")
elif gasto > saldo_actual:
    print("Saldo insuficiente.")
else:
    print("Gasto aprobado.")

Resultado:

text terminal
Saldo insuficiente.

Orden de las validaciones

El orden comunica cuál problema revisamos primero.

python terminal
if not cuenta_activa:

Si la cuenta está inactiva, no tiene sentido seguir revisando el saldo.

Después:

python terminal
elif cuenta_bloqueada:

Luego validamos el monto.

Finalmente comprobamos los fondos.


Registrar el gasto

python terminal
saldo_actual = 1_000
total_gastos = 300
gasto = 200

if gasto <= 0:
    print("El gasto debe ser mayor que cero.")
elif gasto > saldo_actual:
    print("Saldo insuficiente.")
else:
    saldo_actual -= gasto
    total_gastos += gasto

    print("Gasto registrado.")
    print(f"Nuevo saldo: {saldo_actual}")

Resultado:

text terminal
Gasto registrado.
Nuevo saldo: 800

No modificar datos antes de validar

Incorrecto:

python terminal
saldo_actual -= gasto

if gasto > saldo_actual:
    print("Saldo insuficiente.")

Ya modificamos el saldo antes de comprobar la operación.

Correcto:

python terminal
if gasto > saldo_actual:
    print("Saldo insuficiente.")
else:
    saldo_actual -= gasto

Primero validamos.

Después modificamos los datos.