IWI-131 Programación¶
Condiciones y Estructuras condicionales¶
Operadores relacionales, o de comparación¶
Comparan expresiones de cualquier tipo. El resultado siempre es un valor booleano: True
o False
.
- Igual a (
==
) - Distinto a (
!=
) - Mayor que (
>
) - Menor que (
<
) - Mayor o igual que (
>=
) - Menor o igual que (
<=
)
5 == 3
False
4 > 7
False
4 != 3
True
"casa" == 'casa'
True
3 > 3
False
"a" < "z"
True
Operadores lógicos¶
Permiten construir expresiones que representan condiciones complejas a partir de otras expresiones booleanas.
- Conjunción lógica
and
- False si cualquiera de sus operandos es False, True si todos son True. - Disyunción lógica
or
- True si cualquiera de sus operandos es True, False si todos son False. - Negación lógica
not
- True cuando el operando es False, y viceversa.
3 == 5 and False
False
3!=5 or False
True
not True
False
(False or (not False)) and (not True)
False
((3 + 4) < 2) or ((2**4) >= 4)
True
((3 + 4) < 2) and ((2**4) >= 4)
False
Instrucciones Condicionales¶
Condicional if
simple, o de un camino:¶
if
Decide, evaluando una condición booleana, si se ejecuta o no una o varias instrucciones contenidas en el if
.
Si la condición es False, el if
y las instrucciones que contiene son ignoradas.
Las instrucciones contenidas en el if
deben estar indentadas.
Sintaxis:¶
if condicion:
instrucciones
La Tabulación/Sangría después de la instrucción if
indica que cosas se realizarán si se cumple la condición. Esto se llama Indentación.
Diagrama de flujo explicativo¶

Ejemplos¶
nota = int(input("Ingrese su nota: "))
if nota >= 55:
print("Felicitaciones!!!")
Ingrese su nota: 55 Felicitaciones!!!
nota = int(input("Ingrese su nota: "))
if nota < 55:
print("Lamentablemente Ud. ha reprobado.")
Ingrese su nota: 54 Lamentablemente Ud. ha reprobado.
Condicional if de dos caminos: if-else
:¶
Decide entre dos grupos de instrucciones cuál ejecutar, evaluando una condición booleana.
El primer grupo de instrucciones indentandas se ejecutan si la condición es True.
Si la condición es False, se ejecutan las instrucciones que se encuentran indentadas después de else:
Sintaxis:¶
if condicion:
instrucciones cuando la condicion es verdadera
else:
instrucciones cuando la condicion es falsa
Diagrama de flujo explicativo¶

Ejemplos¶
edad = int(input("Cual es su edad? "))
if edad < 18:
print("Usted es menor de edad")
else:
print("Usted es adulto")
Cual es su edad? 18 Usted es adulto
¿Qué mensajes se muestran en el siguiente código si ingresamos...?
n = 15
n = 20
n = int(input("Ingrese un numero: "))
if n % 2 == 0:
print("El numero es par")
print("La mitad del numero es", n / 2)
else:
print("El numero es impar")
print("El sucesor del numero es", n + 1)
print("Fin")
Ingrese un numero: 15 El numero es impar El sucesor del numero es 16 Fin
Condicionales if en cascada: if-elif-else
¶
Permite definir grupos de instrucciones cuya ejecución es excluyente entre sí, a partir de la evaluación de distintas condiciones booleanas que serán evaluadas en cascada, en el orden en que aparecen.
La primera condición que sea True provoca que las instrucciones asociadas se ejecuten y la instrucción if
termine.
Si ninguna condición es True, se ejecutan las instrucciones que vienen después de else:
, si es que aparece esta componente.
Sintaxis:¶
if condición 1:
instrucciones a ejecutar si condición 1 es verdadera
elif condición 2:
instrucciones a ejecutar si condición 2 es verdadera
elif condición 3:
instrucciones a ejecutar si condición 3 es verdadera
else:
instrucciones cuando ninguna condicion anterior es verdadera
La Indentación después de cada instrucción elif
indica que cosas se realizarán si se cumple su respectiva condición (consecuentemente, si no se cumplen las condiciones anteriores)
Diagrama de flujo¶

Ejemplos¶
- Escriba un programa que califique el rendimiento del alumno en una asignatura según la nota obtenida.
nota = int(input("Ingrese su nota: "))
if nota >= 80:
print("Usted es un alumno destacado.")
elif nota >= 65:
print("Usted ha aprobado.")
elif nota >= 55:
print("Usted aprobó con algunas dificultades.")
elif nota >= 45:
print("Con un poco mas de empeño hubiese aprobado.")
else:
print("Nos vemos el próximo semestre.")
Ingrese su nota: 55 Usted aprobó con algunas dificultades.
- Considerar la siguiente tabla que muestra la tasa de impuesto a pagar por una persona según su sueldo.
Sueldo | Tasa de impuesto |
menos de 1000 | 0% |
1000 ≤ sueldo < 2000 | 5% |
2000 ≤ sueldo < 4000 | 10% |
4000 o más | 12% |
Un ejemplo de como se calcula el impuesto sería el siguiente:
sueldo = int(input("Ingrese su sueldo: "))
if sueldo < 1000:
print("caso 1")
tasa = 0.00
elif sueldo < 2000: # 1000 <= sueldo < 2000?
print("caso 2")
tasa = 0.05
elif sueldo < 4000: # 2000 <= sueldo < 4000
print("caso 3")
tasa = 0.10
else:
print("caso falso")
tasa = 0.12
print("Usted debe pagar", int(tasa*sueldo), "de impuesto.")
Ingrese su sueldo: 800 caso 1 Usted debe pagar 0 de impuesto.
Otra forma de calcular el impuesto es la siguiente:
sueldo = int(input("Ingrese su sueldo: "))
if sueldo < 1000: #1000 > sueldo:
print("caso 1")
tasa = 0.00
if sueldo >= 1000 and sueldo < 2000: #if 1000 <= sueldo < 2000:
print("caso 2")
tasa = 0.05
if 2000 <= sueldo < 4000:
print("caso 3")
tasa = 0.10
if 4000 <= sueldo: #sueldo>= 4000
print("caso falso")
tasa = 0.12
print("Usted debe pagar", int(tasa*sueldo), "de impuesto.")
Ingrese su sueldo: 800 caso 1 Usted debe pagar 0 de impuesto.
¿En qué se diferencian los dos programas anteriores?
Ejercicios¶
Ejercicio 1¶
Desarrolle un programa que genere aleatoriamente el lanzamiento de una moneda e indique el resultado del éste.
from random import randint
moneda = randint(0, 1)
if moneda == 0:
print("El lanzamiento es CARA.")
else:
print("El lanzamiento es SELLO.")
El lanzamiento es CARA.
Ejercicio 2¶
Un año es bisiesto si es divisible por $4$, excepto si es divisible por $100$ y no por $400$. Escriba un programa que reciba un año como entrada e indique True
si un año es bisiesto o False
si no lo es.
año = int(input('Ingrese año a consultar: '))
if año % 4 == 0:
if año % 100 == 0 and año % 400 != 0:
bisiesto = False
else:
bisiesto = True
else:
bisiesto = False
print(bisiesto)
Ingrese año a consultar: 2000 True
year=int(input('Ingrese año a consultar: '))
if year % 400 == 0:
bisiesto = True
elif year % 100 == 0:
bisiesto = False
elif year % 4 == 0:
bisiesto = True
else:
bisiesto = False
print(bisiesto)
Ingrese año a consultar: 2000 True
Solución reducida con salida modificada:
a=int(input('Ingrese año a consultar: '))
bisiesto = ((a % 4 == 0 and a % 100 != 0) or a % 400 == 0)
if bisiesto:
print("El año", a, "es bisiesto.")
else:
print("El año", a, "no es bisiesto.")
Ingrese año a consultar: 2000 El año 2000 es bisiesto.
Ejercicio 3¶
El riesgo de que una persona sufra enfermedades coronarias depende de su edad y su índice de masa corporal:
edad < 45 | edad ≥ 45 | |
IMC < 22 | bajo | medio |
IMC ≥ 22 | medio | alto |
El índice de masa corporal (IMC) es el cuociente entre el peso del individuo en kilos y el cuadrado de su altura en metros.
Escriba un programa que reciba como entrada la altura, el peso y la edad de una persona, y entregue su IMC en conjunto a su condición de riesgo.
edad=int(input("Ingrese su edad [años]: "))
peso=float(input("Ingrese su peso [kg]: "))
alt=float(input("Ingrese su altura [m]: "))
IMC = peso / alt**2
print ("Su índice de masa corporal es:", round(IMC,2))
if IMC<22 and edad<45:
print("Su nivel de riesgo es bajo.")
elif IMC<22 and edad>=45:
print("Su nivel de riesgo es medio.")
else:
if edad<45:
print("Su nivel de riesgo es medio.")
else:
print("Su nivel de riesgo es alto.")
Ingrese su edad [años]: 18 Ingrese su peso [kg]: 70 Ingrese su altura [m]: 1.7 Su índice de masa corporal es: 24.22 Su nivel de riesgo es medio.
Ejercicio 3-bis¶
Realice un ruteo, utilizando la solución diseñada en el Ejercicio 3, para los siguientes valores de entrada:
- Edad 50, peso 65 y altura 1.70.
edad | peso | alt | IMC |
50 | |||
65.0 | |||
1.7 | |||
22.49 |
Pantalla: |
Su índice de masa corporal es: 22.49 Su nivel de riesgo es alto. |
¿Cómo se vería el ruteo con otros valores de entrada?