Lección gratis · 33 min · del curso de 3 h

Bucles en Python: for y while con ejemplos

Lección del curso gratis de Python de Randy Varela: repites instrucciones con for y while y lo practicas con una tabla de multiplicar y un juego de adivinar un número.

El vídeo empieza en el minuto de esta lección y sigue con el resto del curso. Ver el curso completo con su índice · Ver en YouTube

En resumen

Los bucles en Python repiten un bloque de código: for recorre una serie de datos, como una lista o un rango de números, y while se repite mientras se cumpla una condición. En esta lección del curso de Python gratis, Randy Varela explica los dos, avisa del riesgo de crear un bucle infinito y los practica con una tabla de multiplicar y un juego de adivinar un número.

Qué es un bucle y el riesgo del bucle infinito

Un bucle se parece a un condicional, pero no se ejecuta una sola vez: comprueba una condición y, mientras se cumpla, repite las instrucciones. Para que termine, algo tiene que cambiar en cada vuelta, por ejemplo una variable que suma uno hasta llegar a 10. Si la condición se cumple siempre, el programa entra en un bucle infinito y no termina nunca, un error que conviene evitar.

Ver la respuesta en el vídeo · 01:41:30

El bucle for: listas y range

Imagina una lista de nombres. Podrías imprimir cada posición a mano, pero si la lista tiene 50 datos o va creciendo, es inviable. Con for, Python recorre la lista entera y en cada vuelta guarda un elemento en una variable.

  • Por costumbre se usa i como variable (y j en un bucle dentro de otro), pero puedes poner un nombre que explique qué recorres.
  • range(5, 10) da del 5 al 9: el último número no se incluye. Para llegar al 10, suma uno.
  • Un tercer número cambia el salto: de dos en dos, de tres en tres.
  • for también recorre tuplas y datos de una base de datos.

Ver la respuesta en el vídeo · 01:45:21

Ejercicio: la tabla de multiplicar con for

Randy programa la tabla del 2. El bucle va de 1 a 10 con range(1, 11) y en cada vuelta guarda en una variable el resultado de 2 por i. Para que cada línea muestre la operación completa, usa una cadena f: una f delante de las comillas y las variables entre llaves. Cambiando el 2 por un 7 obtienes la tabla del 7.

Ver la respuesta en el vídeo · 01:51:34

El bucle while y el juego de adivinar un número

while repite el código mientras una condición sea verdadera. El primer ejemplo es un contador que empieza en 1 y se imprime mientras sea menor o igual a 5. Sin sumarle uno en cada vuelta, el programa se queda bloqueado: se para con Control + C. Después, Randy usa la librería random para elegir un número secreto entre 1 y 5 y crea un juego: mientras el usuario no acierte, el programa le vuelve a preguntar y le da pistas de si el número es mayor o menor.

Ver la respuesta en el vídeo · 02:00:07

Preguntas frecuentes

Dudas sobre esta lección

¿Cuál es la diferencia entre el bucle for y el bucle while?

for recorre una serie de datos conocida, como los elementos de una lista o los números de un range, y termina cuando la acaba. while no recorre nada: repite el código mientras se cumpla una condición, así que eres tú quien debe hacer que esa condición deje de cumplirse. En la lección se ve con una tabla de multiplicar y con un juego.

Ver la respuesta en el vídeo · 01:58:18

¿Cómo detener un bucle infinito en Python?

Si el programa se queda bloqueado repitiendo lo mismo, pulsa Control + C en la terminal; si no responde, cierra esa terminal y abre otra. Para evitarlo, asegúrate de que algo cambia en cada vuelta. En el ejemplo de la lección, el contador no sumaba nada y el bucle no paraba; con contador += 1 termina al pasar de 5.

Ver la respuesta en el vídeo · 02:01:00

¿Por qué range(1, 10) no llega al 10?

Porque range empieza en el primer número y se detiene justo antes del segundo. range(1, 10) da del 1 al 9, así que para llegar al 10 hay que escribir range(1, 11). Si solo pones un número, como range(10), empieza en el 0. Es la razón por la que la tabla de multiplicar de la lección usa range(1, 11).

Ver la respuesta en el vídeo · 01:49:58

Sigue aprendiendo

Más lecciones de este curso

Lecciones relacionadas de otros cursos