Solución al Ejercicio: Adivinar número aleatorio
📋 Copiar código
import random
def juego_adivina_numero():
"""
Genera un número aleatorio entre 1 y 100 y permite al usuario adivinarlo.
Proporciona pistas hasta que el usuario acierta.
"""
numero_secreto = random.randint(1, 100)
intentos = 0
print("¡Bienvenido al juego de adivinar el número!")
print("Estoy pensando en un número entre 1 y 100.")
while True:
try:
intento_usuario = int(input("Intenta adivinar el número: "))
intentos += 1
if intento_usuario < numero_secreto:
print("¡Demasiado bajo!")
elif intento_usuario > numero_secreto:
print("¡Demasiado alto!")
else:
print(f"¡Felicidades! ¡Adivinaste el número ({numero_secreto}) en {intentos} intentos!")
break
except ValueError:
print("Entrada inválida. Por favor, introduce un número entero.")
# Iniciar el juego
juego_adivina_numero()
Explicación del Código:
-
import random
:
- Importa el módulo
random
para generar el número secreto aleatorio.
-
def juego_adivina_numero():
:
- Define una función llamada
juego_adivina_numero
que contiene la lógica del juego.
-
numero_secreto =
random.randint(1, 100)
:
- Genera un número entero aleatorio entre 1
y 100 (inclusive) y lo almacena en la variable
numero_secreto
.
Este es el número que el usuario debe adivinar.
-
intentos = 0
:
- Inicializa una variable
intentos
en 0 para contar cuántos intentos realiza el usuario.
-
Se imprimen mensajes de bienvenida e
instrucciones para el usuario.
-
while True:
:
- Se inicia un bucle
while
que
continuará hasta que el usuario adivine el número correcto y se salga
del bucle con break
.
-
try...except ValueError:
:
- Se utiliza un bloque
try...except
para manejar posibles errores si el usuario ingresa algo que no es un
número entero.
-
intento_usuario = int(input("Intenta
adivinar el número: "))
:
- Se le pide al usuario que ingrese su
intento y se intenta convertir la entrada a un entero.
-
intentos += 1
:
- Se incrementa el contador de intentos en
cada iteración del bucle.
-
Se comparan el intento del usuario y
el número secreto:
- Si el intento es menor (
intento_usuario
< numero_secreto
), se imprime "¡Demasiado bajo!".
- Si el intento es mayor (
intento_usuario
> numero_secreto
), se imprime "¡Demasiado alto!".
- Si el intento es igual (
else:
),
significa que el usuario ha adivinado el número correctamente. Se
imprime un mensaje de felicitación que incluye el número secreto y la
cantidad de intentos, y se sale del bucle con break
.
-
except ValueError:
:
- Si el usuario ingresa algo que no se
puede convertir a un entero, se captura la excepción
ValueError
y se imprime un mensaje de error. El bucle continúa para que el usuario
pueda intentarlo de nuevo.
-
juego_adivina_numero()
:
- Se llama a la función para iniciar el
juego cuando se ejecuta el script.