Sé un Pythonista: Recibe trucos Python y accede a nuestro espacio de Slack

Python if – Sentencia if de control de flujo

Python if - Sentencia if en Python
Share on facebook
Share on twitter
Share on linkedin

En Python if es una de las principales sentencias de control de flujo, junto a while y for.

En este tutorial te mostraré en detalle la sentencia if de control de flujo en Python, desde la estructura más básica hasta las diferentes alternativas.

Índice

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:

if condición:
    bloque de código

Es decir, solo si 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.

❗️IMPORTANTE: 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:

x = 17
if x < 20:
    print('x es menor que 20')

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:

valores = [1, 3, 4, 8]
if 5 in valores:
    print('está en valores')
print('fin')

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:

está en valores
fin

❗️ RECUERDA: 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 condición:
    bloque de código (cuando condición se evalúa a True)
else:
    bloque de código 2 (cuando condición se evalúa a False)

Imagina que estás implementado un programa en el que necesitas realizar la división de dos números. Si divides un número entre 0, el programa lanzará un error y terminará. Para evitar esto, podemos añadir una sentencia if ... else... como en el ejemplo siguiente:

resultado = None
x = 10
y = 2
if y > 0:
    resultado = x / y
else:
    resultado = f'No se puede dividir {x} entre {y}'
print(resultado)

El resultado del script anterior es 5.0. Si ahora actualizamos el valor de y a 0, el resultado sería este otro:

No se puede dividir 10 entre 0

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:

if cond1:
    bloque cond1 (sentencias si se evalúa la cond1 a True)
elif cond2:
    bloque cond2 (sentencias si cond1 es False pero cond2 es True)
...
else:
    bloque else (sentencias si todas las condiciones se evalúan a False)

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:

x = 28
if x < 0:
    print(f'{x} es menor que 0')
elif x > 0:
    print(f'{x} es mayor que 0')
else:
    print('x es 0')

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:

x = 28
if x < 0:
    print(f'{x} es menor que 0')
else:
    if x > 0:
        print(f'{x} es mayor que 0')
    else:
        print('x es 0')

Si te ha resultado útil, compártelo con tus amigos 🤗

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Sé un Pythonista: Recibe trucos Python y accede a nuestro espacio de Slack

También te puede interesar

* Te informo de que los datos de carácter personal que proporciones al comentar serán tratados por Juan José Lozano Gómez como responsable de esta web. La Finalidad es moderar los comentarios. La Legitimación es gracias a tu consentimiento. Destinatarios: tus datos se encuentran alojados en Disqus (disqus.com), mi sistema de comentarios, que está acogido al acuerdo de seguridad EU-US Privacy. Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a juanjo@j2logo.com. Encontrarás más información en la POLÍTICA DE PRIVACIDAD.

Sobre j2logo

Quiero ayudarte a que seas mejor programador/a, pero no uno cualquiera, sino uno de los top.

Últimos posts

¿Quieres ser un auténtico Pythonista? 🐍

📩 Recibe de vez en cuando trucos, scripts y tutoriales Python en español para dominar el lenguaje. No es SPAM. Date de baja cuando quieras

🥇 Accede a nuestra comunidad privada de Slack: Pythonistas-es

* Al enviar el formulario confirmas que aceptas la POLITICA DE PRIVACIDAD

Pythonistas-es

SÉ UN AUTÉNTICO PYTHONISTA

📩 Recibe trucos, scripts y tutoriales Python

🥇 Accede a nuestra comunidad privada de Slack