Compártelo:

Como hemos visto en el apartado anterior, los bucles son una herramienta realmente útil que nos permite repetir instrucciones sin repetir la escritura de comandos en nuestro código, además que mantiene los programas más fáciles de entender. Los bucles “for” se ejecutarán durante una cantidad determinada de veces, es decir el número que proporcionamos explícitamente para ello. Donde los bucles “while” difieren es que se ejecutarán hasta que se les indique que no lo hagan.

Observa el ejemplo a continuación:

In [1]:

watchMinutes = 0

while watchMinutes < 45:

    watchMinutes += 1

print(str(watchMinutes) + » minutos jugados, Estamos en el descanso!»)

45 minutos jugados, Estamos en el descanso!

Como vemos el árbitro enciente su reloj en el minuto 0. A continuación, comienza un bucle “while”, que aumenta el contador de watchMinutes en 1 cada vez que se ejecuta, hasta que la declaración después de ‘while’ se vuelve falsa (en este caso, hasta que pasan los minutos 45). Luego se detiene ese bucle y continúa con el resto del código, diciéndonos que es la mitad del tiempo.

La estructura es bastante simple, pero debemos tener mucho cuidado al usar bucles while, porque si la declaración while nunca se convierte en ‘False’, crearemos un ciclo infinito y tendríamos un programa que no terminaría de ejecutarse.

Veamos otro ejemplo más complejo, el CD Olímpic que quiere ver cuántos pases puede hacer seguidos, si sabe que su tasa de éxito de pases es del 66 %.

In [2]:

import random

keepPossession = True

passSkill = 66

passesComplete = 0

while keepPossession == True:

    if random.randint(0,100) > passSkill:

        keepPossession = False

    else:

        passesComplete += 1

print(passesComplete)

1

Entonces, si nuestro equipo tiene una tasa de éxito en los pases del 66%, ¡realmente no podemos esperar mucho fútbol fluido!

Así que analicemos el codigo, después de importar el módulo ‘random’/aleatorio, definimos algunas cosas:

  • keepPossession: Esto le dice a Python si es ‘Verdadero’ o ‘Falso’ que hemos realizado el pase correctamente.

  • passSkill: Define el % de probabilidad de que nos quedemos con el balón tras intentar un pase. ¡Siéntete libre de cambiar este valor y ver qué números aparecen (Pero evita usar el 100 o más, ya que le estarías diciendo que todos los pases intentados se realizarán con éxito)!

  • passComplete: Este es nuestro contador de cuántos pases hemos realizado seguidos, por ello empieza con un valor de 0.

Luego ejecutamos nuestro ciclo while. Esto se ejecutará infinitamente hasta que perdamos la posesión (keepPossession es igual a False).

En este ciclo, agregamos un pase a nuestro contador, luego ejecutamos un generador de números aleatorios. Si este número aleatorio es mayor que nuestro nivel de habilidad (66 en nuestro ejemplo), perdemos la pelota y establecemos keepPossession en False.

Una vez que finaliza el ciclo, recibimos nuestro recuento completo de pases. Si ejecutamos este código muchas veces, podríamos obtener un buen promedio sobre lo que podemos esperar hacer cada vez, con alguna distribución por encima y por debajo de este número.

Resumen de los ciclos “while” en Python

Los bucles “while” nos dan otra forma de repetir nuestro código, similar al bucle for, su estructura es igual de simple, pero debemos tener cuidado de no enviar nuestro programa a un bucle infinito y romperlo por completo, al no terminar nunca.

En este post usamos estos bucles para que primero actuaran como el reloj de un árbitro y luego para estimar cuántos pases podría encadenar un equipo en una determinada jugada.

Compártelo:

Deja un comentario