Saltar al contenido principal
ByteNova
Programación

¿Qué son las estructuras condicionales?

Publicado por ByteNova · · Actualizado el

En este artículo aprenderás:

Cómo un programa toma decisiones utilizando if, elif y else, cómo comparar valores y cómo combinar varias condiciones.

Los programas no siempre ejecutan exactamente las mismas instrucciones. Muchas veces necesitan analizar información y decidir qué hacer según el resultado. Las estructuras condicionales permiten crear ese comportamiento.

¿Qué es una estructura condicional?

Una estructura condicional permite ejecutar diferentes instrucciones dependiendo de si una determinada condición se cumple o no.

Una condición es una expresión cuyo resultado puede interpretarse como verdadero o falso.

Imagina una aplicación que solamente permite ingresar a usuarios mayores de edad.

El programa podría preguntar: ¿la edad es mayor o igual a 18?

Si la respuesta es verdadera, permite el acceso. Si es falsa, muestra un mensaje diferente.

Sin condiciones, un programa simplemente ejecutaría instrucciones una detrás de otra sin poder reaccionar a los datos que recibe.

Verdadero y falso

Las decisiones se basan normalmente en valores booleanos: True y False.

Por ejemplo:

edad = 20

print(edad >= 18)

El resultado será:

True

La comparación edad >= 18 produce un valor booleano. Ese resultado puede utilizarse después dentro de una condición.

La condición if

if significa “si”. Permite ejecutar un bloque de código únicamente cuando una condición es verdadera.

edad = 20

if edad >= 18:
    print("Puedes ingresar")

Python evalúa la expresión edad >= 18. Como el resultado es verdadero, ejecuta el print().

Si cambiamos la edad:

edad = 15

if edad >= 18:
    print("Puedes ingresar")

En este caso no aparecerá ningún mensaje porque la condición es falsa.

Importante en Python

Las instrucciones que pertenecen a una condición deben estar correctamente indentadas. La indentación indica qué código forma parte del bloque.

La alternativa else

else permite indicar qué debe ocurrir cuando la condición del if es falsa.

edad = 16

if edad >= 18:
    print("Acceso permitido")
else:
    print("Acceso restringido")

Como 16 >= 18 es falso, el programa ejecuta el bloque correspondiente a else.

else no necesita una nueva condición. Representa cualquier caso que no haya cumplido la condición anterior.

Varias opciones con elif

A veces necesitamos comprobar más de dos posibilidades. Para eso podemos utilizar elif, que significa “si no, si”.

nota = 85

if nota >= 90:
    print("Excelente")
elif nota >= 70:
    print("Aprobado")
else:
    print("Reprobado")

El programa evalúa las condiciones en orden.

La primera condición es falsa porque 85 no es mayor o igual a 90. La segunda sí es verdadera, por lo que se muestra:

Aprobado

Después de encontrar una condición verdadera, Python no continúa evaluando los siguientes bloques de esa misma estructura.

Operadores de comparación

Para construir condiciones necesitamos comparar valores.

Algunos operadores habituales en Python son:

  • == comprueba si dos valores son iguales.
  • != comprueba si son diferentes.
  • > significa mayor que.
  • < significa menor que.
  • >= significa mayor o igual que.
  • <= significa menor o igual que.
temperatura = 30

if temperatura > 25:
    print("Hace calor")

== no es lo mismo que =

Este es uno de los errores más frecuentes al empezar.

Un solo signo = se utiliza para asignar un valor:

edad = 18

Dos signos == se utilizan para comparar:

edad == 18

Combinar condiciones con operadores lógicos

A veces una decisión depende de más de una condición. Python permite combinarlas utilizando and, or y not.

and

and requiere que las dos condiciones sean verdaderas.

edad = 22
tiene_entrada = True

if edad >= 18 and tiene_entrada:
    print("Puedes ingresar")

or

or necesita que al menos una de las condiciones sea verdadera.

es_admin = False
es_editor = True

if es_admin or es_editor:
    print("Puedes editar")

not

not invierte un valor booleano.

bloqueado = False

if not bloqueado:
    print("Cuenta disponible")
Consejo

Si una condición empieza a ser demasiado larga, considera dividirla en variables con nombres claros. Eso facilita entender qué está evaluando el programa.

Condiciones anidadas

Una condición puede estar dentro de otra condición. A esto se le conoce como una condición anidada.

edad = 20
tiene_entrada = True

if edad >= 18:
    if tiene_entrada:
        print("Acceso permitido")
    else:
        print("Necesitas una entrada")
else:
    print("Debes ser mayor de edad")

Este código primero verifica la edad y solamente después comprueba si existe una entrada válida.

Las condiciones anidadas son útiles, pero demasiados niveles pueden hacer que el código sea difícil de leer.

En algunos casos podemos simplificar el mismo ejemplo:

if edad >= 18 and tiene_entrada:
    print("Acceso permitido")

La mejor opción depende de las reglas que necesite representar el programa.

Ejemplo práctico: sistema de descuentos

Supongamos que una tienda ofrece diferentes descuentos según el total de una compra.

total = 65000

if total >= 100000:
    descuento = 0.20
elif total >= 50000:
    descuento = 0.10
else:
    descuento = 0

precio_final = total - (total * descuento)

print(f"Total final: ₡{precio_final}")

Si la compra es de ₡65.000, la primera condición no se cumple, pero la segunda sí.

Por lo tanto, el programa aplica un descuento del 10 %.

Este tipo de lógica aparece constantemente en aplicaciones reales: precios, permisos, formularios, videojuegos, sistemas de acceso, evaluaciones y muchas otras situaciones.

Errores comunes con estructuras condicionales

Confundir asignación y comparación

Recuerda que = asigna un valor y == compara dos valores.

Ordenar mal las condiciones

El orden de los elif puede cambiar completamente el resultado.

Observa este ejemplo incorrecto:

nota = 95

if nota >= 70:
    print("Aprobado")
elif nota >= 90:
    print("Excelente")

Aunque la nota es 95, se mostrará “Aprobado” porque la primera condición ya es verdadera.

Una mejor organización sería:

if nota >= 90:
    print("Excelente")
elif nota >= 70:
    print("Aprobado")

No comprobar valores límite

Si una regla dice “18 años o más”, utilizar solamente > 18 dejaría fuera a alguien que tiene exactamente 18 años.

Por eso debemos pensar cuidadosamente si necesitamos > o >=.

Crear condiciones demasiado complejas

Una condición con demasiados operadores puede resultar difícil de mantener. En esos casos es mejor separar la lógica en variables o funciones más pequeñas.

Compruébalo tú mismo

Crea un programa que utilice una variable llamada nota.

El programa debe mostrar:

  • Excelente si la nota es 90 o superior.
  • Aprobado si está entre 70 y 89.
  • Reprobado si es menor que 70.

Intenta resolverlo antes de ver la solución.

Ver una posible solución
nota = 82

if nota >= 90:
    print("Excelente")
elif nota >= 70:
    print("Aprobado")
else:
    print("Reprobado")

Como 82 no alcanza 90, Python pasa a la siguiente condición. Como sí es mayor o igual a 70, muestra Aprobado.

Reto adicional

Añade una validación para mostrar “Nota inválida” cuando el valor sea menor que 0 o mayor que 100.

Preguntas frecuentes

¿Cuál es la diferencia entre if, elif y else?

if evalúa la primera condición, elif permite comprobar condiciones adicionales y else se ejecuta cuando ninguna condición anterior se cumple.

¿Se pueden combinar varias condiciones?

Sí. En Python se pueden combinar utilizando operadores lógicos como and, or y not.

¿Qué ocurre si varias condiciones son verdaderas?

En una estructura if-elif-else se ejecuta únicamente el primer bloque cuya condición sea verdadera.

Cómo diseñar una condición antes de programarla

Antes de escribir un if, conviene expresar la regla con palabras: qué debe cumplirse, qué ocurre cuando se cumple y qué debería pasar en caso contrario. Esta pequeña planificación evita condiciones contradictorias o difíciles de entender.

Ejemplo

Una aplicación puede permitir una acción solamente cuando el usuario inició sesión y dispone del permiso necesario. Son dos condiciones distintas que deben combinarse de forma clara.

Condiciones simples y múltiples

Una condición simple comprueba una sola regla. Cuando aparecen varias alternativas pueden utilizarse estructuras como if, else if y else, según el lenguaje. Si la lógica crece demasiado, suele ser mejor dividirla en funciones o reglas más pequeñas.

Casos que conviene probar

  • El caso esperado donde la condición es verdadera.
  • El caso donde es falsa.
  • Valores en los límites de una comparación.
  • Entradas vacías o inesperadas cuando puedan ocurrir.
Consejo

Evita condiciones innecesariamente complicadas. Nombres descriptivos y reglas pequeñas hacen que el programa sea más fácil de revisar y mantener.

Conclusión

Las estructuras condicionales permiten que un programa tome decisiones en función de los datos que recibe.

Comprender if, elif y else, junto con los operadores de comparación y los operadores lógicos, es fundamental para construir programas capaces de responder a distintas situaciones.

Una vez que entiendas este concepto, podrás combinarlo con variables, funciones y bucles para desarrollar programas cada vez más completos.

Artículo creado por

ByteNova

Proyecto educativo creado por Dylan Estrada. ByteNova publica contenido sobre programación, desarrollo web, inteligencia artificial y ciberseguridad con un enfoque claro para principiantes y revisión editorial continua.

Conoce más sobre ByteNova →