
Semana 3 · Día 5: Juego de adivinanza con pistas en Python
Construye en 60 minutos un juego que responde «demasiado bajo» o «demasiado alto», termina al acertar y corrige una condición que impide iniciar el bucle.
Entrega de hoy
Al terminar los 60 minutos tendrás una carpeta
dia-05-adivinanza/ con cuatro evidencias:adivinanza.py, un juego que da las pistas «demasiado bajo» y «demasiado alto» hasta acertar;prediccion.md, con el recorrido de tres intentos escrito antes de ejecutar;pruebas.txt, con una partida de tres intentos y otra de un solo intento;error_condicion.py, una copia donde provocarás y corregirás un bucle que nunca empieza.
La etiqueta exacta de la malla es Semana 3 · Día 5: Crear un juego simple de adivinanza. Hoy combinarás
while con if, elif y else. El número secreto quedará fijo para que puedas comprobar cada rama sin depender del azar. No añadas todavía números aleatorios, límite de intentos, funciones ni manejo de errores.Sesión de 60 minutos
00:00-10:00 · 10 minutos de repaso y predicción
Crea
dia-05-adivinanza/prediccion.md. Escribe estas dos variables sin ejecutarlas:secreto = 7
intento = 0Responde en orden:
- ¿
intento != secretoes verdadero o falso al comenzar? - Si la primera respuesta del jugador es
3, ¿qué pista debe aparecer? - Si después escribe
9, ¿qué pista debe aparecer? - Si termina con
7, ¿qué mensaje debe aparecer? - Después de acertar, ¿
intento != secretosigue siendo verdadero?
Deja también esta predicción:
Intento 1: 3 → Demasiado bajo.
Intento 2: 9 → Demasiado alto.
Intento 3: 7 → ¡Acertaste!
El while termina porque 7 != 7 es falso.La última línea importa más que acertar el número: explica por qué el programa deja de pedir intentos.
10:00-30:00 · 20 minutos con el recurso de la malla
Abre Learn Python - Full Course for Beginners [Tutorial], el curso de freeCodeCamp nombrado en la malla. Mira desde
2:14:13, capítulo While Loop, hasta 2:32:44, cuando empieza For Loops. Dentro de ese tramo, Building a Guessing Game comienza en 2:20:21. La descripción oficial del video incluye esos marcadores y permite elegir una pista doblada al español desde el engranaje del reproductor. 1Loading content card…
En
prediccion.md, anota solo estas tres observaciones:- La condición del
whileexpresa cuándo debe continuar el juego. - La variable del intento se actualiza con
input()dentro del bucle. - Al acertar, la condición deja de cumplirse y Python sale del bucle.
El video amplía el ejemplo con un límite de intentos. No copies esa parte hoy: primero deja funcionando el recorrido mínimo de pista baja, pista alta y acierto.
30:00-55:00 · 25 minutos de juego y corrección
Crea
dia-05-adivinanza/adivinanza.py:secreto = 7
intento = 0
print("Tengo un número del 1 al 10.")
while intento != secreto:
intento = int(input("Adivina: "))
if intento < secreto:
print("Demasiado bajo.")
elif intento > secreto:
print("Demasiado alto.")
else:
print("¡Acertaste!")
print("Juego terminado.")Antes de ejecutarlo, sigue la primera vuelta con el dedo:
intentovale0ysecretovale7.- Como
0 != 7es verdadero, Python entra alwhile. input()reemplaza el0por el número que escriba el jugador.- Una sola rama decide la pista: menor, mayor o igual.
- Python vuelve a comprobar la condición del
while.
Un
while evalúa su condición antes de cada vuelta y repite el bloque mientras esa expresión sea verdadera. Si la condición ya es falsa en la primera comprobación, el bloque no se ejecuta ni una vez. 2Ejecuta
adivinanza.py. Introduce 3, después 9 y por último 7. La partida debe verse así:Tengo un número del 1 al 10.
Adivina: 3
Demasiado bajo.
Adivina: 9
Demasiado alto.
Adivina: 7
¡Acertaste!
Juego terminado.Copia la ejecución completa en
pruebas.txt bajo PRUEBA 1: 3, 9, 7. Comprueba que las tres ramas hicieron trabajos distintos: if respondió al valor menor, elif al mayor y else a la igualdad. Python examina las condiciones de una cadena if/elif en orden y ejecuta solo el primer bloque cuya condición sea verdadera; si ninguna lo es, llega al else. 3Ejecuta el juego otra vez y escribe
7 en el primer intento. Guarda la salida bajo PRUEBA 2: 7. Debe mostrar ¡Acertaste! sin imprimir ninguna pista anterior.Ahora duplica el archivo como
error_condicion.py. Cambia solo esta línea:while intento != secreto:por esta:
while intento == secreto:Antes de ejecutar, predice si aparecerá
Adivina:. Luego ejecuta la copia. Verás únicamente:Tengo un número del 1 al 10.
Juego terminado.No hay un error de sintaxis. El problema es lógico:
intento comienza en 0, así que 0 == 7 es falso y el cuerpo del while se salta desde la primera comprobación.Restaura
while intento != secreto y repite 3, 9, 7. Confirma que reaparecen las tres preguntas y que el juego termina justo después del acierto. Guarda en prediccion.md una frase con este formato:El operador incorrecto fue ___; impedía entrar al bucle porque ___. Lo corregí por ___ y comprobé que ___.55:00-60:00 · 5 minutos de cierre de notas
Añade estas cuatro líneas al final de
prediccion.md:- El bucle continuó mientras: escribe la condición con tus palabras.
- La variable que cambió fue: indica dónde recibió cada intento nuevo.
- Cada pista dependió de: explica qué comparó
ifoelif. - El error de condición fue: anota por qué el programa terminó sin preguntar.
Cierra con una ejecución limpia de
adivinanza.py. Si otra persona quiere probarlo, cambia secreto = 7 antes de ejecutar y no le muestres el archivo. El código sigue siendo el mismo; solo cambia el número que debe encontrar.Hecho cuando...
- Existe
dia-05-adivinanza/con los cuatro archivos pedidos. - Predijiste las pistas para
3,9y7antes de ejecutar. - Explicaste por qué
7 != 7detiene elwhile. - Viste el tramo
2:14:13-2:32:44del curso nombrado en la malla. -
adivinanza.pypide un número dentro delwhile. - La prueba
3, 9, 7muestra una pista baja, una pista alta y el acierto. - Guardaste esa partida completa en
pruebas.txt. - La prueba con
7termina después de un solo intento. - Provocaste el error cambiando
!=por==. - Explicaste por qué el programa defectuoso no mostró
Adivina:. - Restauraste
!=y comprobaste de nuevo las tres vueltas. - Dejaste las cuatro notas de cierre.
- No añadiste números aleatorios, límite de intentos, funciones ni manejo de errores.
References
- 1
- 28.2. The while statement — Python Language Reference
docs.python.org
- 34.1. if Statements — Python Tutorial
docs.python.org
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.
