← CC2005

Estructuras Condicionales

Semestre 02, 2026

El problema

  • Muchos programas no siguen siempre el mismo camino.
  • A veces el programa debe decidir qué hacer.
  • Ese comportamiento depende de los datos que recibe.

Control de acceso por edad

Un sistema evalúa la edad de una persona y decide si puede ingresar.

Edad mayor o igual a 18, puede ingresar.
Edad menor a 18, no puede ingresar.
Lo importante

El mismo programa produce dos resultados distintos. La diferencia la marca el dato de entrada.

Estructuras condicionales

Definición

Una estructura condicional permite ejecutar un bloque de código solo cuando una condición se cumple.

La decisión siempre se basa en una expresión booleana.

Cómo funciona la decisión

1Se evalúa la condición
  • El resultado solo puede ser verdadero o falso.
2Si es verdadera
  • Se ejecuta el bloque asociado a la condición.
3Si es falsa
  • Ese bloque se omite y el programa sigue otro camino.

Expresiones booleanas

Definición

Una expresión booleana es una expresión cuyo resultado solo puede ser True o False.


x = 5

print(x > 3)          # True
print(x == 10)        # False
print((x % 2) == 1)   # True

Operadores de comparación

OperadorPregunta que respondeEjemplo
==¿Son iguales?x == 10
!=¿Son distintos?x != 10
>¿Es mayor?x > 3
<¿Es menor?x < 3
>=¿Es mayor o igual?x >= 18
<=¿Es menor o igual?x <= 18

Combinación de condiciones

Los operadores lógicos unen varias condiciones en una sola expresión.


x = 7
y = 10

print((x > 5) and (y < 20))   # True, ambas se cumplen
print(not(x == y))            # True, invierte el resultado
and exige que todas las condiciones se cumplan.
or basta con que una se cumpla.
not invierte el valor de la condición.

La estructura if

Definición

El if ejecuta un bloque de código únicamente si la condición es verdadera.


if condicion:
    # bloque de código

Primer if


edad = 20

if edad >= 18:
    print("Eres mayor de edad")
Lectura

Si la edad fuera 15 la condición sería falsa y el programa no imprimiría nada. El bloque simplemente se omite.

Indentación

Definición

Python usa la indentación para definir qué líneas pertenecen a un bloque. El espacio no es decoración, es sintaxis.

La convención del lenguaje son cuatro espacios por nivel.

Indentación correcta


if True:
    print("Esto se imprime")
Resultado

La línea indentada queda dentro del if y se ejecuta cuando la condición se cumple.

Indentación incorrecta


if True:
print("Esto falla")

# IndentationError: expected an indented block
Comportamiento

Python espera un bloque indentado después de los dos puntos. Si no lo encuentra, detiene el programa antes de ejecutarlo.

Alternativa con else

Definición

El else define el camino que se toma cuando la condición no se cumple.


if condicion:
    # bloque si se cumple
else:
    # bloque si no se cumple

Números pares e impares


numero = 7

if numero % 2 == 0:
    print("Es par")
else:
    print("Es impar")
Garantía

Con else siempre se ejecuta exactamente un bloque. Nunca los dos, nunca ninguno.

Condicionales compuestas

Definición

Cuando hay más de dos caminos posibles usamos elif para evaluar condiciones adicionales.


if condicion1:
    # bloque
elif condicion2:
    # bloque
else:
    # bloque

Clasificación por edad


edad = 70

if edad < 18:
    print("Menor de edad")
elif edad < 65:
    print("Adulto")
else:
    print("Adulto mayor")

El orden decide el resultado

  • Las condiciones se evalúan de arriba hacia abajo.
  • La primera que resulte verdadera ejecuta su bloque.
  • Las demás ya no se evalúan, aunque también fueran verdaderas.
  • Por eso una cadena de elif siempre ejecuta un solo bloque.

Clasificación de notas


nota = 85

if nota >= 90:
    print("Excelente")
elif nota >= 75:
    print("Muy bien")
elif nota >= 61:
    print("Bien")
else:
    print("Reprobado")

nota = 85

if nota >= 90:
    print("Excelente")
elif nota >= 75:
    print("Muy bien")
elif nota >= 61:
    print("Bien")
else:
    print("Reprobado")
nota = 85

Guardamos el dato que vamos a evaluar. Todo lo que sigue depende de este valor.


nota = 85

if nota >= 90:
    print("Excelente")
elif nota >= 75:
    print("Muy bien")
elif nota >= 61:
    print("Bien")
else:
    print("Reprobado")
if nota >= 90:

Se evalúa la primera condición. Con 85 el resultado es falso, así que el bloque se omite y bajamos al siguiente elif.


nota = 85

if nota >= 90:
    print("Excelente")
elif nota >= 75:
    print("Muy bien")
elif nota >= 61:
    print("Bien")
else:
    print("Reprobado")
elif nota >= 75:

Esta condición sí se cumple, entonces se imprime Muy bien. Aquí termina la ejecución de toda la cadena.


nota = 85

if nota >= 90:
    print("Excelente")
elif nota >= 75:
    print("Muy bien")
elif nota >= 61:
    print("Bien")
else:
    print("Reprobado")
elif nota >= 61:
else:

Estas ramas nunca se evalúan con una nota de 85. Solo existen para los valores que no entraron en las condiciones anteriores.

Condicionales anidadas

Definición

Un if puede colocarse dentro de otro. A esto se le llama anidación y sirve para afinar una decisión ya tomada.


numero = 0

if numero >= 0:
    if numero == 0:
        print("Es cero")
    else:
        print("Es positivo")
else:
    print("Es negativo")

numero = 0

if numero >= 0:
    if numero == 0:
        print("Es cero")
    else:
        print("Es positivo")
else:
    print("Es negativo")
if numero >= 0:

La primera decisión separa los negativos del resto. Con cero la condición se cumple y entramos al bloque.


numero = 0

if numero >= 0:
    if numero == 0:
        print("Es cero")
    else:
        print("Es positivo")
else:
    print("Es negativo")
if numero == 0:
else:

Dentro del primer bloque hacemos una segunda decisión. Este if solo se evalúa si el número ya resultó no negativo.


numero = 0

if numero >= 0:
    if numero == 0:
        print("Es cero")
    else:
        print("Es positivo")
else:
    print("Es negativo")
else:

Este else corresponde al if externo, no al interno. La indentación es lo único que lo indica.

Comparaciones encadenadas

Python permite escribir un rango tal como se escribe en matemática.


nota = 85

if 75 <= nota < 90:
    print("Muy bien")

# equivale a
if (nota >= 75) and (nota < 90):
    print("Muy bien")

Usar = en lugar de ==


if x = 5:
    print("Hola")

# SyntaxError: invalid syntax
Diferencia

Un signo asigna un valor a la variable. Dos signos comparan dos valores y producen True o False.

Olvidar los dos puntos


if x > 3
    print("Hola")

# SyntaxError: expected ':'
Regla

Toda línea que abre un bloque termina en dos puntos. Aplica a if, elif y else por igual.

Comparar tipos distintos


edad = input("Edad: ")

if edad >= 18:
    print("Mayor de edad")

# TypeError: '>=' not supported between 'str' and 'int'
Solución

La función input devuelve texto. Hay que convertirlo con int antes de compararlo con un número.

Buenas prácticas

Escribir condiciones claras y fáciles de leer en voz alta.
Evitar anidaciones innecesarias, casi siempre se reemplazan con elif.
Usar operadores lógicos para unir condiciones relacionadas.
Cuidar el orden de las condiciones, la primera verdadera gana.