REVIT ARCHITECTURE (972) – PYTHON – Bucles (56) – Bucle bucle while. Representar situaciones reales en un programa informático.

Objetivos del ejemplo de Bucle While.

  • Usar un bucle while: esto significa repetir algo varias veces, mientras se cumpla una condición.
  • Simular una situación de la vida real en código: en este caso, usamos una historia (como un juego o reto) para que el programa tenga un contexto divertido o interesante.

Ejemplo: El guardia de la contraseña

Situación

Imagina que hay un castillo con una puerta mágica. Para entrar, el usuario debe escribir la contraseña correcta.
Mientras escriba una contraseña incorrecta, el guardia del castillo no lo dejará pasar y repetirá el mismo mensaje una y otra vez.
Solo cuando el usuario acierte, el guardia lo dejará entrar.

Código en Python

Explicación detallada paso a paso del código:

Se define la contraseña correcta:

Aquí se guarda la contraseña mágica en una variable.

Se imprime un mensaje de bienvenida:

Se usa comillas triples """ para mostrar un texto de varias líneas, como una introducción del juego.

Se define una variable vacía para empezar:

Así podemos comparar con la contraseña y entrar en el bucle.

El bucle while comienza:

Mientras el usuario no escriba bien la contraseña, el programa repetirá todo lo que está dentro del bucle.

Se pide al usuario que escriba algo:

Si la contraseña no es correcta, se le da un mensaje de error:

Cuando el usuario acierta, el bucle termina y se imprime un mensaje de éxito:

Salida del programa en consola (ejemplo realista)

¿Qué ocurre paso a paso?

  1. El programa muestra la bienvenida.
  2. El usuario escribe "fuego" → incorrecto → el programa muestra el mensaje de error.
  3. El usuario prueba "piedrafilosofal" → incorrecto otra vez.
  4. Finalmente, escribe "dragonscale" → correcto → el bucle termina y aparece el mensaje de éxito.

Vamos a convertir este ejemplo en un minijuego más completo y divertido, manteniendo el uso del bucle while y la lógica de una situación realista.

Minijuego: El castillo encantado

Historia del juego

Eres un viajero que quiere entrar a un castillo encantado. Un guardia mágico te hace tres preguntas clave. Solo si respondes bien las tres, podrás entrar.
Si fallas alguna… ¡volverás a empezar desde cero!

¿Qué se aprende con este ejemplo de juego?

  • Uso de variables.
  • Bucle while para repetir el juego si fallas.
  • Entrada de datos con input().
  • Condicionales if.
  • Multi-line printing para crear una ambientación narrativa.

Código completo del minijuego

¿Qué hace este código?

  • Te plantea 3 preguntas una detrás de otra.
  • Si fallas cualquiera, recibes un mensaje y el juego vuelve a empezar desde el principio.
  • Solo cuando las 3 respuestas sean correctas, el juego termina y “entras al castillo”.

Código explicativo línea por línea

1. Introducción del juego con impresión múltiple

Se usa print(«»» … «»») para mostrar un mensaje en varias líneas (multilínea).

Crea una ambientación narrativa, como si el jugador estuviera entrando en una historia mágica.

Los símbolos +, =, y los emojis son decorativos.

2. Inicio del bucle principal del juego

Es un bucle infinito, lo que significa que el juego se repetirá sin parar hasta que el jugador gane (y usemos break).

Se usa True como condición para que el bucle siempre se ejecute.

3. Pregunta 1: capital de Francia

print(…): muestra la primera pregunta.

input(…): espera que el jugador escriba algo.

.strip(): elimina espacios extra al principio o final (por si escriben » París «).

.lower(): convierte la respuesta a minúsculas, para que «París» y «parís» se consideren iguales.

4. Pregunta 2: operación matemática

Similar al anterior, pero aquí se espera un número.

No se convierte a int porque solo comparamos con el texto «56», no hacemos operaciones.

5. Pregunta 3: personaje de Harry Potter

Otra pregunta de cultura popular.

Nuevamente usamos .strip().lower() para comparar de forma más flexible.

6. Verificación de las respuestas

Comprobamos si la respuesta 1 es correcta.

Aceptamos ambas formas: con tilde («parís») o sin tilde («paris»).

Solo si la primera es correcta, pasamos a comprobar la segunda.

Aquí esperamos que escriban «56».

Finalmente comprobamos la tercera respuesta.

7. Si todas son correctas, mostramos victoria y salimos del bucle

Muestra un mensaje de éxito con emojis y ambientación.

break: sale del bucle while, lo que termina el juego.

8. Mensajes de error si alguna respuesta está mal

Si falla la tercera pregunta, este es el mensaje.

Si falla la segunda pregunta, este mensaje aparece.

Si falla la primera pregunta, lo detenemos aquí y no verificamos las demás.

Cada vez que se falla algo, el juego vuelve al principio del bucle y se hacen las 3 preguntas otra vez.

9. Mensaje final cuando el jugador gana

Este mensaje solo se muestra cuando se sale del bucle, o sea, después de haber ganado.

¿Qué se ha aprendido con este código?

  • Cómo crear un bucle que se repite hasta una condición específica (while True con break).
  • Cómo pedir respuestas al usuario.
  • Cómo limpiar y normalizar entradas (strip(), lower()).
  • Cómo encadenar condicionales para evaluar varias condiciones paso a paso.
  • Cómo crear una experiencia más rica con texto y emojis.

Bonus:

1. break

¿Qué es?

break es una instrucción que rompe o detiene un bucle (while o for) antes de que termine naturalmente.

¿Para qué sirve?

Sirve para salir de un bucle cuando ya no queremos que siga repitiéndose, aunque la condición siga siendo verdadera.

Ejemplo sencillo:

Explicación:
El bucle while True se repetiría infinitamente.

Pero si el usuario escribe «salir», se ejecuta break y salimos del bucle inmediatamente.

2. .strip()
¿Qué es?
.strip() es un método de las cadenas de texto (strings) que elimina los espacios en blanco al principio y al final del texto.

¿Para qué sirve?
Evita errores si el usuario deja espacios sin querer. Ejemplo: » París » no es igual a «París» si no usamos .strip().

Ejemplo:

Sin .strip():
Si escribes » Carlos «, el nombre se guarda con espacios, y puede causar problemas en comparaciones.

Con .strip():
» Carlos » se convierte en «Carlos».

También existen .lstrip() (quita espacios solo a la izquierda) y .rstrip() (solo a la derecha), pero .strip() los quita de ambos lados.

3. .lower()
¿Qué es?
.lower() convierte todo el texto en minúsculas.

¿Para qué sirve?
Permite comparar palabras sin importar si el usuario escribió mayúsculas o minúsculas.

Ejemplo:

Caso:
Si escribes «PARÍS» o «París» o «parís», todas se convierten a «parís» gracias a .lower().

Así no importa cómo lo escribe el usuario, mientras tenga el contenido correcto.

Resumen rápido

Instrucción ¿Qué hace? ¿Cuándo se usa?
break Sale de un bucle antes de tiempo Cuando se cumple una condición y ya no quieres seguir repitiendo
.strip() Elimina espacios en los extremos del texto Para limpiar entradas del usuario
.lower() Convierte el texto a minúsculas Para comparar textos sin errores por mayúsculas

 

 

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario