¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Condicionales en Python: if, elif y else

Después de esta lección: Puedo hacer que un programa elija con if, elif y else.

Lección de 55 min6 comandosLaboratorio de comandos de Linux de cada día: los treinta comandos que se escriben de memoria

Cómo hace Python para decidir

Un condicional es una orden que hace que el programa elija entre dos caminos según una condición. En Python se escribe con if, elif y else.

Un cine cobra distinto a un niño, a un adulto y a una persona mayor. En esta lección escribirás el programa que elige el precio correcto.

Al final de esta lección

Nota

Puedo hacer que un programa elija con if, elif y else.

Palabras clave

PalabraQué significaEjemplo
Condiciónuna pregunta que solo tiene respuesta True o Falseage < 12
Comparaciónuna condición que compara dos valores==
Operador lógicoune condiciones: and, or o not
Bloquelas líneas con sangría que se ejecutan juntas
Sangríalos cuatro espacios al principio de una línea

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Una comparación da True o False

Una comparación pone dos valores frente a frente y responde True o False. Se escribe con estos signos: <, >, <=, >=, == y !=.

Dos signos == preguntan si dos valores son iguales. Un solo = guarda un valor, así que no sirve para preguntar.

Ejemplo resuelto: seis comparaciones con 12

ComparaciónSe leeResultado
12 < 1812 es menor que 18True
12 >= 1812 es mayor o igual que 18False
12 == 1212 es igual a 12True
12 != 1212 es distinto de 12False
12 > 1212 es mayor que 12False
12 <= 1212 es menor o igual que 12True

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Tres comparaciones con 5 y 3

Comando
python3 -c "print(5 > 3, 5 == 3, 5 != 3)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

if ejecuta un bloque solo si se cumple

Escribe if, una condición y dos puntos. Las líneas que dependen de ella llevan sangría: cuatro espacios al principio.

Si la condición es True, Python ejecuta ese bloque. Si no, salta al else. Con elif añades otra pregunta entre las dos.

Un precio de cine con tres caminos

Código: python
# El precio de una entrada de cine según la edad.
age = 70
if age < 12:
    price = 5
elif age >= 65:
    price = 6
else:
    price = 9
print("La entrada cuesta", price, "euros")
# Cambia age a 30 y a 8, y pulsa Ejecutar otra vez.

Escribe un guion con if y else

Comando
printf 'age = 17\nif age < 18:\n    print("menor")\nelse:\n    print("adulto")\n' > ~/edad.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejecútalo

Comando
python3 ~/edad.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que if age = 18: pregunta si la edad es 18. Con un solo signo, Python da un error, porque = guarda y no compara. Para preguntar escribe ==. Y no olvides los dos puntos ni la sangría.

and, or y not unen condiciones

Con and las dos condiciones tienen que ser verdaderas. Con or basta una. Con not se da la vuelta a la respuesta.

Así preguntas de una vez por la edad y por ser estudiante, como hace un descuento joven.

Ejemplo resuelto: and, or y not

ABA and BA or Bnot A
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseTrueFalseTrueTrue
FalseFalseFalseFalseTrue

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Prueba and, or y not

Código: python
age = 15
is_student = True
# and exige las dos cosas, or exige una de las dos.
print(age < 18 and is_student)
print(age > 65 or is_student)
print(not is_student)
# Cambia is_student a False y mira qué cambia.

La misma tabla en la terminal

Comando
python3 -c "print(True and False, True or False, not True)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Con elif eliges entre varios caminos

Python mira las condiciones de arriba abajo y ejecuta solo el primer bloque que se cumple. Después se salta el resto.

Por eso importa el orden. Una nota de 9 cumple >= 5, pero si preguntas eso primero, nunca llegarás a >= 9.

Escribe un guion con elif

Comando
printf 'mark = 7\nif mark >= 9:\n    print("sobresaliente")\nelif mark >= 7:\n    print("notable")\nelif mark >= 5:\n    print("aprobado")\nelse:\n    print("suspenso")\n' > ~/nota.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejecútalo con la nota 7

Comando
python3 ~/nota.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sobre este laboratorio y su código: Laboratorio de comandos de Linux de cada día: los treinta comandos que se escriben de memoria

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.