Parte 21 — Errores comunes
Olvidar los dos puntos
Incorrecto:
if saldo > 0
print("Saldo positivo.")Correcto:
if saldo > 0:
print("Saldo positivo.")Olvidar la indentación
Incorrecto:
if saldo > 0:
print("Saldo positivo.")Correcto:
if saldo > 0:
print("Saldo positivo.")Indentar demasiado
Incorrecto:
saldo = 1_000
if saldo > 0:
print("Saldo positivo.")No existe un bloque que justifique la indentación inicial.
Correcto:
saldo = 1_000
if saldo > 0:
print("Saldo positivo.")Utilizar = en la condición
Incorrecto:
if saldo = 1000:
print("Saldo exacto.")Correcto:
if saldo == 1000:
print("Saldo exacto.")Utilizar mayúsculas incorrectas
Incorrecto:
If saldo > 0:Correcto:
if saldo > 0:Las palabras reservadas de Python se escriben en minúsculas.
Escribir Else If
Incorrecto:
else if saldo == 0:Correcto:
elif saldo == 0:Colocar elif después de else
Incorrecto:
if saldo > 0:
print("Positivo.")
else:
print("Otro caso.")
elif saldo == 0:
print("Cero.")else debe ser la última rama.
Correcto:
if saldo > 0:
print("Positivo.")
elif saldo == 0:
print("Cero.")
else:
print("Negativo.")Utilizar dos else
Una estructura solo puede tener un else.
Incorrecto:
if saldo > 0:
print("Positivo.")
else:
print("No positivo.")
else:
print("Otro caso.")Comparar texto con número
opcion = input("Opción: ")
if opcion == 1:
print("Seleccionaste uno.")opcion es str.
Correcto:
if opcion == "1":
print("Seleccionaste uno.")Error con or
Incorrecto:
if moneda == "CRC" or "USD":
print("Moneda válida.")Correcto:
if moneda == "CRC" or moneda == "USD":
print("Moneda válida.")Condición demasiado amplia primero
porcentaje = 95
if porcentaje >= 0:
print("Porcentaje positivo.")
elif porcentaje >= 90:
print("Porcentaje alto.")La primera condición también acepta 95.
Por eso la segunda nunca se ejecuta.
Mejor:
if porcentaje >= 90:
print("Porcentaje alto.")
elif porcentaje >= 0:
print("Porcentaje positivo.")Modificar datos antes de validar
Incorrecto:
saldo -= gasto
if gasto > saldo:
print("Saldo insuficiente.")Correcto:
if gasto > saldo:
print("Saldo insuficiente.")
else:
saldo -= gastoOlvidar que input() puede fallar antes del if
monto = int(input("Monto: "))
if monto > 0:
print("Monto válido.")Si el usuario escribe "hola", el error ocurre durante int().
El if nunca llega a ejecutarse.
Las condiciones pueden validar el valor después de convertirlo, pero no evitan por sí solas un ValueError.
Más adelante utilizaremos try y except.
Comparar None con ==
Esto puede funcionar:
if valor == None:Pero la forma recomendada es:
if valor is None:Demasiadas condiciones anidadas
Difícil de leer:
if cuenta_activa:
if saldo > 0:
if gasto > 0:
if gasto <= saldo:
print("Aprobado.")Más claro:
if (
cuenta_activa
and saldo > 0
and gasto > 0
and gasto <= saldo
):
print("Aprobado.")