Curso de Python

Aprende PYTHON de una buena vez

Cabecera principal de presentación del curso de Inicia en la programación en Python. Aprende a programar en Python desde cero
gratis
texto + video

Ciclo while en Python. Cómo crear, escribir y usar un while en Python

Los ciclos while son una estructura cíclica, que nos permite ejecutar una o varias líneas de código de manera repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se va a dar el valor final que esperamos.

Con el ciclo while, no conoces el cuándo sino el cómo. Es decir, conocer la condición bajo la cual se va a detener el ciclo, pero no sabes cuántas iteraciones tomará eso, ni cuánto tiempo. Por ello se los llama ciclos indeterminados.

¿Cómo funciona un Ciclo While en Python?

Para comprender mejor el funcionamiento del ciclo while, pongamos un buen ejemplo, imaginemos que, por algún motivo, queremos pedirle a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese el número 0. Como vemos, en este caso, no sabemos cuántas veces pedir un valor, solo sabemos en qué momento dejar de pedir uno, pues no tenemos ni idea de cuándo al usuario se le va a ocurrir ingresar un cero. Es algo indeterminado para nosotros. Sin embargo, el ciclo while nos permite ejecutar una acción de forma "infinita" hasta que se cumpla alguna condición específica, en nuestro caso sería que el numero sea 0.

Vamos a ver ahora cómo es la sintaxis de un ciclo while en Python, así estaremos listos para usarlos en nuestros programas de ahora en adelante cada vez que lo necesitemos.

Sintaxis del Ciclo While en Python:

La sintaxis de un ciclo while es incluso más simple y "legible" que la de otros ciclos (que verémos en el siguiente artículo), pues simplemente requerimos tener clara una condición de parada. En realidad, en la mayoría de los lenguajes de alto nivel la manera de escribir un ciclo while (la sintaxis) es incluso muy similar, así que con tan solo tener bien clara una condición de finalización para el ciclo tendremos prácticamente todo hecho.

while(condición de finalización): #por ejemplo entrada == 100 ... ... Bloque de Instrucciones... Dentro del while ... ... Bloque de Instrucciones... FUERA del while

Como ves, en esencia, es lo mismo que un condicional if(). Sin embargo, ya usas while, y el funcionamiento es completamente diferente, pues esas instrucciones en su interior se ejecutarán tantas veces sea necesario mientras se siga cumpliendo la condición dada.

Es muy importante, como siempre en Python, notar los dos puntos al final de la instrucción del while y que, todo lo que vaya en su interior, debe llevar la indentación.

Si algo no ha quedado muy claro, ya vamos a ver cómo usar el ciclo while en unos casos más prácticos

Ejemplos de Ciclo While en Python

A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada el uso de los ciclos while en Python. Recuerda que, si no comprendes alguno de estos ejemplos o tienes alguna pregunta o sugerencia sobre estos o cualquier contenido de la sección, puedes dejarlas en la sección de comentarios

Ejemplo 1: Pedir números por pantalla hasta que alguno sea 0

Vamos a retomar el ejemplo anterior, donde queremos hacer que nuestro programa le pida a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número igual a cero. Una vez más es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien todos los conceptos anteriores:

Solución Ejemplo 1:

Para solucionar esto, debemos tener clara cuál va a ser la condición que se debe cumplir para que el ciclo esté pidiendo el número contantemente. El ciclo se va a detener solo cuando el número ingresado sea igual a 0, así que la condición para que se siga ejecutando es que el numero NO sea 0. Veámoslo entonces.

numero = float(input('Ingresa un número. 0 para terminar: ')) while(numero != 0): numero = float(input('Ingresa un número. 0 para terminar: ')) print('Fin del programa.')

Efectivamente, el código anterior funciona. Sin embargo, hay una mejor forma de resolverlo, pero para ello, debemos introducir una instrucción llamada break de Python.

La instrucción break en Python y los ciclos

Como su nombre lo indica, esta instrucción permitirá "romper" o básicamente detener cualquier ciclo en el que se encuentre una vez es ejecutada. Como siempre, una forma de comprenderla será con un ejemplo. Mejoremos entonces el ejemplo anterior un poco, para evitar repetir el llamado a input y el mensaje:

while(True): numero = float(input('Ingresa un número. 0 para terminar: ')) if (numero == 0): break print('Fin del programa.')

Como puedes ver, al usar while(True), nos aseguramos que el ciclo se ejecute por siempre. Sin embargo, al poner un llamado a break al interior, el cual se ejecuta SOLO cuando el número ingresado en cero, nos aseguramos de que se cierre el ciclo en ese preciso momento. Así nos hemos ahorrado de repetir el llamado a input y al mensaje repetidos. Usa el código del ejemplo y juega un poco, así quedará más claro.

Muy bien, en efecto los ciclos while son bastante útiles. Sin embargo, desde el punto de vista de la eficiencia, es recomendable evitarlos en la medida de lo posible. Siempre que vayas a usar un ciclo while o cualquier tipo de ciclo en realidad, deberías preguntarte primero si es totalmente necesario o si existe una manera más efectiva de hacerlo. Incluso, si el ciclo mismo es necesario o si puedes recudir la cantidad de veces que vaya a repetir las instrucciones.

Evidentemente, habrá situaciones en las que será casi que imprescindible usar el ciclo, pues por algo existen. Está entonces en nuestra habilidad determinar cuándo usarlos y mejor aún como usarlos de manera efectiva. Algo que la práctica te irá mostrando.

Es todo en esta sección, podemos entonces continuar ahora con el siguiente contenido que son los ciclos for, recuerda también dejar tus comentarios y/o preguntas en la sección de comentarios.

La última actualización de este artículo fue hace 3 años

Foto de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

¡Listo!

En breve recibirás un mensaje de confirmación. Verifica, por si acaso, la carpeta de correo no deseado.

...

Si te parece bien, te enviaré de vez en cuando, mensajes de interés sobre los temas que se tratan en el sitio.

Tu dirección de correo electrónico será almacenada con un interés según el artículo en el que te encuentres.

Por supuesto, puedes cancelar tu suscripción en cualquier momento.