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
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Condición | una pregunta que solo tiene respuesta True o False | age < 12 |
| Comparación | una condición que compara dos valores | == |
| Operador lógico | une condiciones: and, or o not | |
| Bloque | las líneas con sangría que se ejecutan juntas | |
| Sangría | los 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ón | Se lee | Resultado |
|---|---|---|
| 12 < 18 | 12 es menor que 18 | True |
| 12 >= 18 | 12 es mayor o igual que 18 | False |
| 12 == 12 | 12 es igual a 12 | True |
| 12 != 12 | 12 es distinto de 12 | False |
| 12 > 12 | 12 es mayor que 12 | False |
| 12 <= 12 | 12 es menor o igual que 12 | True |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Tres comparaciones con 5 y 3
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
# 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
printf 'age = 17\nif age < 18:\n print("menor")\nelse:\n print("adulto")\n' > ~/edad.pySe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Ejecútalo
python3 ~/edad.pySe 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
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| True | True | True | True | False |
| True | False | False | True | False |
| False | True | False | True | True |
| False | False | False | False | True |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Prueba and, or y not
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
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
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.pySe 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
python3 ~/nota.pySe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.