Un bucle while se usa cuando queremos repetir una acción varias veces, mientras se cumpla una condición. En el primer ejemplo, el programa le pide al usuario que escriba números, y cuenta cuántos son pares y cuántos impares. El programa se detiene cuando se introduce un 0.
La lógica es:
Se pide un número.
Mientras ese número no sea 0:
Se comprueba si es par o impar.
Se suma al contador correspondiente.
Se pide otro número.
Cuando se introduce un 0, el bucle se detiene y se muestran los resultados.
Cosas importantes que se pueden simplificar:
En vez de escribir while number != 0:, también se puede usar while number: porque en Python el número 0 se considera falso, y cualquier otro número se considera verdadero.
Igual con if number % 2 == 1: (para comprobar si es impar), se puede escribir if number % 2: porque cualquier número impar dará un residuo distinto de cero (que es verdadero), y si es par, el residuo es 0 (que es falso).
Ejemplo diferente con la misma idea:
Imagina que estás organizando una fiesta y quieres saber cuántas personas han confirmado su asistencia y cuántas han dicho que no. Vas a preguntar uno por uno hasta que alguien diga «fin».
Versión simplificada del mismo bucle:
Recuerda:
Puedes escribir condiciones más cortas (como while counter: en vez de while counter != 0), pero no siempre es mejor. A veces es más importante que tu código sea fácil de entender, especialmente si otra persona va a leerlo.
Usa nombres de variables claros y estructuras legibles. El código no solo debe funcionar, también debe ser comprensible.
La explicación detallada del código del ejemplo que se ha mostrado es la siguiente:
Línea 1
Aquí se crea una variable llamada yes_count (contador de personas que dicen «sí»).
Se inicializa en 0 porque al comenzar el programa, todavía nadie ha confirmado su asistencia.
Línea 2
Se crea otra variable llamada no_count (contador de personas que dicen «no»).
También empieza en 0 porque aún no tenemos respuestas negativas.
Línea 3
El programa muestra un mensaje por pantalla pidiendo una respuesta: «sí», «no» o «fin» (para terminar).
Luego espera que el usuario escriba algo y lo guarda en la variable response.
Ejemplo: si el usuario escribe sí, entonces response guarda la cadena «sí».
Línea 4. Comienzo del bucle:
Aquí comienza un bucle while, que significa «mientras response sea diferente de ‘fin’, sigue repitiendo el bloque de código».
Es decir, el programa seguirá preguntando hasta que el usuario escriba «fin».
Dentro del bucle (bloque indentado):
Opción 1:
Si la persona escribió «sí», se suma 1 al contador yes_count.
Opción 2:
Si la persona escribió «no», se suma 1 al contador no_count.
Opción 3:
Si la persona escribió otra cosa (por ejemplo, «tal vez» o «quizá»), el programa muestra «Respuesta no válida.» pero no suma nada a los contadores.
Se repite la pregunta:
Después de procesar la respuesta, el programa vuelve a pedir otra entrada.
Esta nueva respuesta reemplaza el valor de response.
Y el bucle se repite mientras no se escriba «fin».
Cuando el usuario escribe "fin":
La condición del bucle deja de cumplirse (response != «fin» ya no es verdadera) y el programa sale del bucle y continúa con las siguientes instrucciones.
Finalmente se imprimen los resultados:
Se muestra cuántas personas respondieron «sí».
Luego, cuántas respondieron «no».
Ejemplo de ejecución:
Conclusión:
Este programa es una aplicación práctica del bucle while, usada para:
Pedir información varias veces.
Clasificar respuestas (sí/no).
Ignorar respuestas no válidas.
Salir del bucle con una palabra clave («fin»).
Bonus:
¿Qué es % en Python?
El símbolo % se llama «módulo» o «operador de resto» (en inglés: modulo operator).
Su función es darte el resto de una división.
Por ejemplo:
-
5 % 2significa «¿cuánto sobra al dividir 5 entre 2?»
→ 5 dividido entre 2 es 2 y sobra 1
→ entonces5 % 2 == 1 -
8 % 2significa «¿cuánto sobra al dividir 8 entre 2?»
→ 8 dividido entre 2 es 4 y sobra 0
→ entonces8 % 2 == 0
Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.












