Python if – Sentencia básica
En Python, la sentencia if se utiliza para ejecutar un bloque de código si, y solo si, se cumple una determinada condición. Por tanto, if es usado para la toma de decisiones.
La estructura básica de esta sentencia if es la siguiente:
condición
se evalúa a True
, se ejecutarán las sentencias que forman parte de bloque de código
. En caso de que se evalúe a False
no se ejecutará ninguna sentencia perteneciente a bloque de código
.Aquí, condición
puede ser un literal, el valor de una variable, el resultado de una expresión o el valor devuelto por una función.
En las expresiones es muy común usar los operadores booleanos y de comparación.
El cuerpo del bloque está indicado con un sangrado mayor. Dicho bloque termina cuando se encuentre la primera línea con un sangrado menor.
Veamos un ejemplo:
En el código anterior la variable x
toma el valor 17
. En la línea 2, la condición de la sentencia if
evalúa si x es menor que 20
. Como el valor devuelto por la expresión es True
, se ejecuta el bloque del if
, mostrando por pantalla la cadena x es menor que 20
.
Veamos otro ejemplo:
En este caso tenemos una lista de valores
. El if comprueba si el número 5
se encuentra entre estos valores
. Como la expresión devuelve como resultado False
, porque 5
no está entre los valores
, el código anterior simplemente mostrará por pantalla la cadena fin
.
Si repetimos el ejemplo anterior, modificando la condición a esta otra 3 in valores
, el resultado del programa sería:
En principio, en Python todos los objetos/instancias se evalúan a True
a excepción de None
, False
, 0
de todos los tipos numéricos y secuencias/colecciones vacías, que se evalúan a False
.
Sentencia if … else
Hay ocasiones en que la sentencia if
básica no es suficiente y es necesario ejecutar un conjunto de instrucciones o sentencias cuando la condición se evalúa a False
.
Para ello se utiliza la estructura if ... else...
Esta es estructura es como sigue:
if ... else...
como en el ejemplo siguiente:
El resultado del script anterior es 5.0
. Si ahora actualizamos el valor de y
a 0
, el resultado sería este otro:
if … elif … else
También es posible que te encuentres situaciones en que una decisión dependa de más de una condición.
En estos casos se usa una sentencia if compuesta, cuya estructura es como se indica a continuación:

Es decir, en esta ocasión, se comprueba la condición cond1
. Si se evalúa a True
, se ejecuta el bloque bloque cond1
y después el flujo continúa después del bloque if.
Sin embargo, si cond1
se evalúa a False
, se comprueba la condición cond2
. Si esta se evalúa a True
, se ejecuta el bloque de sentencias bloque cond2
. En caso contrario, pasaría a comprobar la condición del siguiente elif
y así sucesivamente hasta que llegue al else
, que se ejecuta si ninguna de las condiciones anteriores se evaluaron a True
.
Veamos un ejemplo. Imagina que queremos comprobar si un número es menor que 0, igual a 0 o mayor que 0 y en cada situación debemos ejecutar un código diferente. Podemos hacer uso de la estructura if … elif … else anterior:
En el ejemplo anterior x
toma el valor 28
. La primera condición de la sentencia if
se evalúa a False
y pasa a la siguiente (a la del bloque elif
). En esta ocasión, la expresión se evalúa a True
, mostrándose por pantalla la cadena 28 es mayor que 0
.
Sentencias if anidadas
Para terminar este tutorial, simplemente me gustaría añadir que en cualquiera de los bloques de sentencias anteriores se puede volver a incluir una sentencia if, o if … else … o if … elif … else …
Por ejemplo, podemos simular el caso de la última sección de la siguiente manera: