Semestre 02, 2026
Un sistema evalúa la edad de una persona y decide si puede ingresar.
El mismo programa produce dos resultados distintos. La diferencia la marca el dato de entrada.
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.
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
| Operador | Pregunta que responde | Ejemplo |
|---|---|---|
== | ¿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 |
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
El if ejecuta un bloque de código únicamente si la condición es verdadera.
if condicion:
# bloque de código
edad = 20
if edad >= 18:
print("Eres mayor de edad")
Si la edad fuera 15 la condición sería falsa y el programa no imprimiría nada. El bloque simplemente se omite.
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.
if True:
print("Esto se imprime")
La línea indentada queda dentro del if y se ejecuta cuando la condición se cumple.
if True:
print("Esto falla")
# IndentationError: expected an indented block
Python espera un bloque indentado después de los dos puntos. Si no lo encuentra, detiene el programa antes de ejecutarlo.
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
numero = 7
if numero % 2 == 0:
print("Es par")
else:
print("Es impar")
Con else siempre se ejecuta exactamente un bloque. Nunca los dos, nunca ninguno.
Cuando hay más de dos caminos posibles usamos elif para evaluar condiciones adicionales.
if condicion1:
# bloque
elif condicion2:
# bloque
else:
# bloque
edad = 70
if edad < 18:
print("Menor de edad")
elif edad < 65:
print("Adulto")
else:
print("Adulto mayor")
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")
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")
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")
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")
Estas ramas nunca se evalúan con una nota de 85. Solo existen para los valores que no entraron en las condiciones anteriores.
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")
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")
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")
Este else corresponde al if externo, no al interno. La indentación es lo único que lo indica.
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")
if x = 5:
print("Hola")
# SyntaxError: invalid syntax
Un signo asigna un valor a la variable. Dos signos comparan dos valores y producen True o False.
if x > 3
print("Hola")
# SyntaxError: expected ':'
Toda línea que abre un bloque termina en dos puntos. Aplica a if, elif y else por igual.
edad = input("Edad: ")
if edad >= 18:
print("Mayor de edad")
# TypeError: '>=' not supported between 'str' and 'int'
La función input devuelve texto. Hay que convertirlo con int antes de compararlo con un número.