Condicionales en Python

Te confesaré que necesitaba pasar a la acción. Soy consciente de que ver los tipos de datos no es lo mas divertido del mundo, ni siquiera del mundo de la programación. Sin embargo, creo que es importante tener estas Pyldoras Pythonicas resueltas. No es necesario que las estudies todas, al menos no de momento, pero, si que considero importante tenerlas ahí, para cuando las necesites poder recurrir a ellas. Sin embargo, no es de esto de lo que va esta Pyldora Pythonica, esta va de los condicionales, de modificar el flujo, de cambiar la secuencia en la que se producen los hechos en base a las condiciones que establezcas. Esta Pyldora Pythonica va de condicionales en Python.

Condicionales en Python

Condicionales en Python

Aunque hasta el momento todo lo que hemos hecho, con los diferentes tipos de datos que hemos visto hasta el momento, ha sido secuencial. Es decir, definimos un elemento, luego definimos otro elemento, operamos con ellos, etc. Pero, siempre ha sido igual, uno, después otro, luego otro y así sucesivamente. Pero ¿es posible modificar el flujo normal de las operaciones en base a determinadas condiciones? Si. Esto es precisamente los condicionales en Python.

Un condicional permite modificar el flujo de tu programa. Así, puedes hacer que tu programa haga unas determinadas operaciones si se cumplen unas condiciones, y en caso contrario que se realicen otras operaciones. Por ejemplo,

if x > y:
    print("x es mayor que y")
else:
    print("y es mayor que x")

En este condicional, dependiendo del valor que tome x en referencia a y o bien imprimirá como resultado que una variables es mayor que la otra, o bien que la otras es mayor que la una.

Sin embargo, esto no es del todo cierto, porque no se contempla el caso de que sean iguales. En el caso de x sea igual a y, imprimirá de cualquier forma que y es mayor que x. Para corregir esta situación, tenemos que añadir un segundo elemento a nuestro condicional. Se trata de elif que nos permite añadir una condición adicional. Siguiendo con el ejemplo anterior,

if x > y:
    print("x es mayor que y")
elif x == y:
    print("x es igual a y")
else:
    print("y es mayor que x")

Condicionales en línea

En ocasiones con el objetivo de simplificar el código, y con vistas a hacerlo mas legible es posible utilizar condicionales en línea. Esto aplicado al ejemplo anterior tendría un aspecto como el que te muestro a continuación,

msg = "x es mayor que y" if x > y else "y es mayor o igual que x"
print(msg)

Condicionales anidados

Es posible definir condicionales anidados. Es decir, y por explicarlo con pocas palabras condicionales dentro de condicionales. A mi, en particular, no me gusta abusar de los condicionales anidados, porque al final el código se convierte en algo realmente de leer, y es muy complejo de mantener. Cuanto mas sencillo sea nuestro código mas fácil será de leer y mantener, por supuesto. Sin embargo, en ocasiones esto no es posible y es necesario utilizarlos, con lo que mi recomendación es que lo hagas lo mas sencillo y fácil de leer que puedas.

Para que te hagas una idea de los condicionales anidados, que seguro luego utilizarás como si no hubiera un mañana,

if x > 5:
    if x > 10:
        if x > 20:
            print("x es mayor que 20")
        else:
            print("x es mayor que 10 pero menor de 20")

match

Además de los condicionales if también tienes otra herramienta que se introduce en Python 3.10 que es match. La sentencia match permite realizar comparaciones con distintos patrones. Por ejemplo,

match estado:
    case 200:
        return "OK"
    case 400:
        return "Petición incorrecta"
    case 500 | 501 |502:
        return "Otro error"
    case _:
        return "Algo no va bien"

Utilizando case indicas que patrón tiene que cumplir estado, en el ejemplo anterior. También es posible definir en lugar de una sola opción varias opciones que debe cumplir utilizando | como si fuera or. Y por último, si quieres definir una sentencia que se ejecute en caso de que no se cumpla ninguno de los patrones anteriores tendrás que utilizar _, como en el ejemplo anterior.

Lo cierto, es que llevo toda mi vida Pythonica ligado al elif y ahora, con la versión 3.10 encontrarme con match se me hace raro, pero bueno, tendremos que aprovechar todas las opciones y herramientas que nos ponen al alcance de las teclas.

El vídeo

Para acompañar esta Pyldora te dejo el correspondiente vídeo donde encontrarás esto mismo, pero de forma visual.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.