A menudo tenemos que tomar decisiones en nuestras vidas. Por ejemplo cuando digo “si llueve cojo el paraguas”, la acción de que coja el paraguas se producirá en caso de que se cumpla la condición de que está lloviendo. Esto traducido a la programación significa que cierta parte del código sólo se ejecutará en caso de que se cumplan ciertas condiciones. Las sentencias condicionales cumplen con dicha función. Nos ayudan a controlar el flujo de nuestro programa, decidiendo si unas líneas de código se tienen que ejecutar en función de si se cumplen unas condiciones preestablecidas. En concreto, comprueban si una condición es verdadera o falsa para tomar o no cierta acción.
Sentencia if
La sentencia condicional más básica en Python es la sentencia if
, la cual se expresa de la siguiente forma:
if condicion: # ejecutar un código
En la expresión previa:
- La condición es una expresión booleana que se evalúa como verdadera (
True
) o falsa (False
). - Se requiere el uso de dos puntos (:) al final de la condición.
- Todas las líneas de código a ejecutar si se cumple la condición tienen que estar indentadas respecto la sentencia
if
.
La indentación es una característica que diferencia Python de otros lenguajes de programación, dónde el código a ejecutar de cumplirse la condición se encierra entre llaves. Esta característica tiene el propósito de mejorar la legibilidad de los programas.
Veamos el uso de la sentencia if
con un ejemplo:
>>> x = 15 >>> if x > 10: ... print('x es mayor que 10') ... x es mayor que 10
En el ejemplo empezamos asignando a la variable x el valor 15. A continuación evaluamos si cumple la condición de que la variable x es mayor a 10. Como se da el caso, la condición se evalúa como verdadera. Es por ello que el programa ejecuta la sentencia print()
.
Sentencia else
A la sentencia if
se le puede añadir opcionalmente una sentencia else
. Esta sentencia contiene el código a ejecutar en caso de que no se cumpla la condición de la sentencia if
. Esta estructura se expresa del siguiente modo:
if condicion: # ejecutar un código else: # ejecutar un código distinto
Veamos un ejemplo parecido al anterior al que se le ha añadido una sentencia else
:
>>> x = 5 >>> if x > 10: ... print('x es mayor que 10') ... else: ... print('x es menor o igual que 10') ... x es menor o igual que 10
En este caso a la variable x se le asigna el valor 5. Como ahora no es verdad que x sea mayor que 10, la condición de la sentencia if
se evalúa como falsa. Por tanto, el programa ejecuta la instrucción bajo la sentencia else
.
Sentencia elif
A una sentencia if else
se pueden añadir un número indefinido de condiciones adicionales a verificar. Estas condiciones se definen mediante la sentencia elif
, la cual es un abreviación de else if
. Ésta se define así:
if condicion: # ejecutar un código elif otra_condicion: # ejecutar otro código else: # ejecutar un código distinto
Siguiendo con el ejemplo de los números, podemos añadir una sentencia elif
del siguiente modo:
>>> x = 7 >>> if x > 10: ... print('x es mayor que 10') ... elif x < 10: ... print('x es menor que 10') ... else: ... print('x es 10') ... x es menor que 10
En este caso como x tiene asignado el valor 7, la condición de la sentencia elif
se evalúa como verdadera. Por este motivo el programa ejecuta la instrucción print()
asociada a esta sentencia.
Un punto importante de las sentencias if elif
es que una cuando una condición es evaluada como verdadera se ignoran el resto de condiciones. Este hecho se ilustra en el siguiente ejemplo:
>>> x = 15 >>> if x > 5: ... print('x es mayor que 5') ... elif x > 10: ... print('x es mayor que 10') ... else: ... print('x es menor que 5') ... x es mayor que 5
En el ejemplo nunca va a evaluarse la condición de la sentencia elif
, ya que los valores mayores que 10 también cumplen la condición de la sentencia if
(ser mayores que 5). Por consiguiente la instrucción print
asociada al elif
es una línea de código inaccesible.
Sentencia pass
En ciertas ocasiones necesitamos añadir código auxiliar a nuestros programas. Por ejemplo, añadimos una sentencia if
que completamos posteriormente con su código a ejecutar. Como en Python se usa la indentación para delimitar las sentencias condicionales, si el intérprete no encuentra código indentado después de una sentencia if
, lanza un error de tipo IndentationError
. Este tipo de errores los puede detectar automáticamente un IDE para Python o una aplicación como Atom con el paquete linter-flake8. En cualquier caso, como se ilustra en el siguiente bloque de código, siempre podemos hacer uso de una sentencia pass
la cual actúa como un marcador que hace que el interprete no nos lance un error.
if Ture: pass print('Seguir...')
Estupendos ejercicios donde se aclaran muchas dudas espero seguir por estos lados
Excelente, espero que por aquí puedas aprender mucho más.
¿Qué parte de una sentencia if debería ir indentada?
Hola gerson, en una sentencia if hay que indentar todo el código que ha de ejecutarse en caso que se cumpla la condición que estamos comprobando.
muchas gracias, me aclaró algunas dudas
Genial Jorge, me alegro de haber resuelto tus dudas!
Muy Buen Instructor, GRACIAS
De nada Emilio, un placer!