CODEZEROINTERACTIVE

Chapter 9 / 15

Parte 21 — Errores comunes

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

Lesson 2252%

22 / 26 lessons in this chapter

Parte 21 — Errores comunes

1 / 1 in this part

Current chapter

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

Self-paced

Parte 21 — Errores comunes

Olvidar los dos puntos

Incorrecto:

python terminal
if saldo > 0
    print("Saldo positivo.")

Correcto:

python terminal
if saldo > 0:
    print("Saldo positivo.")

Olvidar la indentación

Incorrecto:

python terminal
if saldo > 0:
print("Saldo positivo.")

Correcto:

python terminal
if saldo > 0:
    print("Saldo positivo.")

Indentar demasiado

Incorrecto:

python terminal
saldo = 1_000

    if saldo > 0:
        print("Saldo positivo.")

No existe un bloque que justifique la indentación inicial.

Correcto:

python terminal
saldo = 1_000

if saldo > 0:
    print("Saldo positivo.")

Utilizar = en la condición

Incorrecto:

python terminal
if saldo = 1000:
    print("Saldo exacto.")

Correcto:

python terminal
if saldo == 1000:
    print("Saldo exacto.")

Utilizar mayúsculas incorrectas

Incorrecto:

python terminal
If saldo > 0:

Correcto:

python terminal
if saldo > 0:

Las palabras reservadas de Python se escriben en minúsculas.


Escribir Else If

Incorrecto:

python terminal
else if saldo == 0:

Correcto:

python terminal
elif saldo == 0:

Colocar elif después de else

Incorrecto:

python terminal
if saldo > 0:
    print("Positivo.")
else:
    print("Otro caso.")
elif saldo == 0:
    print("Cero.")

else debe ser la última rama.

Correcto:

python terminal
if saldo > 0:
    print("Positivo.")
elif saldo == 0:
    print("Cero.")
else:
    print("Negativo.")

Utilizar dos else

Una estructura solo puede tener un else.

Incorrecto:

python terminal
if saldo > 0:
    print("Positivo.")
else:
    print("No positivo.")
else:
    print("Otro caso.")

Comparar texto con número

python terminal
opcion = input("Opción: ")

if opcion == 1:
    print("Seleccionaste uno.")

opcion es str.

Correcto:

python terminal
if opcion == "1":
    print("Seleccionaste uno.")

Error con or

Incorrecto:

python terminal
if moneda == "CRC" or "USD":
    print("Moneda válida.")

Correcto:

python terminal
if moneda == "CRC" or moneda == "USD":
    print("Moneda válida.")

Condición demasiado amplia primero

python terminal
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:

python terminal
if porcentaje >= 90:
    print("Porcentaje alto.")
elif porcentaje >= 0:
    print("Porcentaje positivo.")

Modificar datos antes de validar

Incorrecto:

python terminal
saldo -= gasto

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

Correcto:

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

Olvidar que input() puede fallar antes del if

python terminal
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:

python terminal
if valor == None:

Pero la forma recomendada es:

python terminal
if valor is None:

Demasiadas condiciones anidadas

Difícil de leer:

python terminal
if cuenta_activa:
    if saldo > 0:
        if gasto > 0:
            if gasto <= saldo:
                print("Aprobado.")

Más claro:

python terminal
if (
    cuenta_activa
    and saldo > 0
    and gasto > 0
    and gasto <= saldo
):
    print("Aprobado.")