Parte 14 — Evitar divisiones entre cero
El problema
python terminal
total_gastos = 500
total_ingresos = 0
porcentaje_gastado = (
total_gastos / total_ingresos
) * 100Esto produce:
text terminal
ZeroDivisionErrorComprobar 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 = NoneDespué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 Nonepara 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.")