Nivel II

Juega con bucles

Ahora es el momento de aprender qué es un “bucle” o “loop”. Si tuvieras que ilustrar un bucle, probablemente incluso harías el gesto de un “círculo” con el dedo o te imaginarías un círculo. Eso es exactamente lo que sucede en Python. Elegirías realizar un «bucle» cuando desees repetir un bloque de código una cantidad específica de veces (una y otra vez).

Hay dos tipos de bucles:

Bucle FOR

Un ciclo FOR es útil para iterar (o recorrer) cada uno de los elementos de una secuencia, como listas, diccionarios, strings, conjuntos y tuplas. En otras palabras, queremos realizar lo mismo una y otra vez, en sucesión.

¿Por qué nos gustaría hacer eso? Imagina que le preguntas a alguien “De 0 a 10, ¿cuánto me amas?” Y esta persona responde: “¿Cuáles son mis opciones?” Por lo tanto, elige mostrar las opciones de la siguiente
manera:

Esta persona, que es un veterano de #CodeForAChallenge, responde que deberías ser más eficiente y te recomienda realizar un bucle o loop «for» de la siguiente manera:

¿Lo ves? Es como leer, intenta decir en voz alta “por cada opción que tengo en este contenedor de 0 a 10 niveles de amor, muéstrale a mi amigo especial cada opción”.

En la primera línea, seleccionamos una «lista» como contenedor y la llamamos «niveles_de_amor«. En la segunda línea, a cada elemento de la lista elegí llamarlo “opción”. “FOR ___ in ____” corresponde a la estructura de bucle.

Es importante que comprendas que incluso si cambia algo seleccionado en negrita, el código seguirá mostrando el mismo resultado. Esto significa que puedes elegir el nombre que mejor se adapte a ti, por lo que es más fácil de leer (preferiblemente no muy largo).

Es importante destacar que puedes sorprender a tu “amig@ especial» con algo llamado «función de rango” o “range”. Esto es exactamente lo que has hecho hasta ahora, pero evita escribir cada uno de los valores de la lista love_levels. ¿Por qué es esto relevante? Porque imagina que tus niveles de amor van de 0 a 1000, ¿los escribirías uno por uno? ¡Echemos un vistazo!

Nota

La función de rango recupera los valores de 0 a 10, pero requiere el rango de valores (0,11). Esto sucede porque el 0 es inclusivo, pero el 11 es exclusivo.

¡Esperamos que tu amig@ haya elegido, al menos, un 10/10 de amor por ti!

Bucle WHILE

Ahora que conoces el bucle «for», es el momento adecuado para presentarte el bucle «while«. While significa “mientras” en inglés. Mientras que «for» realiza algo varias veces, «while» hace lo mismo, pero bajo una condición booleana determinada (Verdadero, Falso).

Siguiendo el «ejemplo de amor» de la sección del bucle “for”, exploremos los niveles de amor, nuevamente:

Vamos a traducirlo:

#Primera iteración

  • Línea 1: declaramos la variable love_level, y seleccionamos el valor inicial “0”.
  • Línea 2: “mientras que el valor dentro de love_level sea menor que 11, haz esto”. En nuestro primer caso, el valor inicial es 0, por lo que 0 < 11. Esto es verdadero, por lo que va a la línea 3.
  • Línea 3: Imprime el valor dentro de love_level, que es 0. Va a la Línea 4.
  • Línea 4: declara también una nueva variable llamada love_level, y lo que sea que haya dentro de la variable anterior llamada love_level, agrega +1. Esto es posible porque estamos “reescribiendo” la variable, ya que estamos usando el mismo nombre. En otras palabras, love_level era 0, ahora es 0+1 = 1.

#Segunda iteración

  • Línea 1: Ahora que love_level = 1, el código realiza automáticamente la declaración de la variable en la línea 1. Entonces comenzará en la parte «while».
  • Línea 2: dado que love_level aún es menor que 11, continuará hasta la línea 3 y luego hasta la 4.

#En la décima iteración

  • La variable love_level será igual a 10, por lo que cuando llegue a la línea 4 (y se convierte en 11) el ciclo terminará. No habrá una iteración 11, ya que la condición de la línea 2 será Falsa.

¿Has visto lo que hemos hecho aquí? Te recomendamos encarecidamente que realices el bucle for o while línea por línea en un papel o mentalmente. Es importante que entiendas lo que está sucediendo, para que la programación no se convierta en una caja negra sin sentido. ¡No te rindas!