CODEZEROINTERACTIVE

Chapter 9 / 15

Parte 14 — Evitar divisiones entre cero

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

Lesson 1550%

15 / 26 lessons in this chapter

Parte 14 — Evitar divisiones entre cero

1 / 1 in this part

Current chapter

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

Self-paced

Parte 14 — Evitar divisiones entre cero

El problema

python terminal
total_gastos = 500
total_ingresos = 0

porcentaje_gastado = (
    total_gastos / total_ingresos
) * 100

Esto produce:

text terminal
ZeroDivisionError

Comprobar antes de dividir

python terminal
total_gastos = 500
total_ingresos = 0

if total_ingresos > 0:
    porcentaje_gastado = (
        total_gastos / total_ingresos
    ) * 100

    print(
        f"Porcentaje gastado: "
        f"{round(porcentaje_gastado, 2)} %"
    )
else:
    print(
        "No se puede calcular el porcentaje "
        "porque no existen ingresos."
    )

Guardar un valor alternativo

python terminal
if total_ingresos > 0:
    porcentaje_gastado = (
        total_gastos / total_ingresos
    ) * 100
else:
    porcentaje_gastado = None

Después:

python terminal
if porcentaje_gastado is None:
    print("Porcentaje no disponible.")
else:
    print(
        f"Porcentaje gastado: "
        f"{round(porcentaje_gastado, 2)} %"
    )

Aquí utilizamos:

python terminal
is None

para comprobar específicamente la ausencia de valor.


is None

Para comprobar None, la forma recomendada es:

python terminal
if valor is None:

Y para comprobar que no es None:

python terminal
if valor is not None:

Ejemplo:

python terminal
ultimo_movimiento = None

if ultimo_movimiento is None:
    print("No hay movimientos registrados.")

Meta igual a cero

python terminal
meta_ahorro = 0
saldo_actual = 1_000

if meta_ahorro > 0:
    progreso = (saldo_actual / meta_ahorro) * 100
    print(f"Progreso: {round(progreso, 2)} %")
else:
    print("La meta debe ser mayor que cero.")

Cantidad de gastos igual a cero

python terminal
cantidad_gastos = 0
total_gastos = 0

if cantidad_gastos > 0:
    promedio_gastos = total_gastos / cantidad_gastos
    print(f"Promedio: {promedio_gastos}")
else:
    print("No hay gastos para calcular un promedio.")