Computación Python
Secuencia 4
Juego adivina mi número
Recordemos el juego de Adivina mi Número. Se trata de adivinar, en la menor cantidad de
intentos, un número al azar que genera el programa. Hagámoslo en Python.
Meta 1. Comencemos por generar un número aleatorio usando la función randint que forma
parte del paquete random:
from random import randint
z = randint(1,20)
print (’El numero es’,z)
Hemos incluido la instrucción print para mostrar el número y comprobar que se genera co-
rrectamente.
Meta 2. Consultemos ahora al usuario su número usando la función input:
from random import randint
z = randint(1,20)
n = input(’Que numero crees que es? ’)
print (’El numero es’,z)
Meta 3. Comparemos ambos números con if mostrando los mensajes correspondientes al usuario:
from random import randint
z = randint(1,20)
n = input(’Que numero crees que es? ’)
if n>z: print (’El numero que diste es mayor’)
if n<z: print (’El numero que diste es menor’)
print (’El numero es’,z)
notemos que, cuando if, for, etc. actúan sobre una sola lı́nea, no es necesario “agrupar” esta
lı́nea con sangrı́a. El programa hasta ahora harı́a algo como lo siguiente:
Que numero crees que es? 10
El numero que diste es menor
El numero es 13
Meta 4. Ahora, lo único que falta es incluir las lı́neas adecuadas dentro de un ciclo para que el
programa nos de más oportunidades de adivinar el número. En C podrı́amos usar un ciclo tipo do
while, el cual no está implementado en Python, por lo que tendremos que usar un while True
como si fuera un ciclo “infinito”, e incluir in if al final para condicionar la instrucción break
que obliga al programa a salir del ciclo donde se encuentre:
1 R. Espejel
Python Computación
from random import randint
z = randint(1,20)
while True:
n = input(’Que numero crees que es? ’)
if n>z: print (’El numero que diste es mayor’)
if n<z: print (’El numero que diste es menor’)
if n==z: break
print (’Adivinaste!’)
print (’El numero es’,z)
Esto es, si se cumple la condición del último if, significa que el usuario adivinó el número y sale
del ciclo. Incluyamos ahora un contador que indique cuántos intentos lleva el jugador:
from random import randint
z = randint(1,20)
c = 0
while True:
c = c + 1
n = input(’ Intento %d. Que numero crees que es? ’ % c)
if n>z: print (’El numero que diste es mayor’)
if n<z: print (’El numero que diste es menor’)
if n==z: break
print (’Adivinaste!’)
print (’El numero es’,z)
El programa ahora funcionarı́a ası́:
Intento 1. Que numero crees que es? 10
El numero que diste es menor
Intento 2. Que numero crees que es? 15
El numero que diste es menor
Intento 3. Que numero crees que es? 20
El numero que diste es mayor
Intento 4. Que numero crees que es? 17
El numero que diste es mayor
Intento 5. Que numero crees que es? 16
Adivinaste!
El numero es 16
R. Espejel 2
Computación Python
Meta 5. Ahora limitaremos a 5 el número de intentos, aumentando la conjunción lógica or
(también existe and), de modo que el programa salga del ciclo si el jugador acertó o en el caso de
que haya excedido el número de intentos. Para dar al jugador el mensaje correcto ( Adivinaste!
o Perdiste), debemos incluir un if con else:
from random import randint
z = randint(1,20)
c = 0
while True:
c = c + 1
n = input(’ Intento %d. Que numero crees que es? ’ % c)
if n>z: print (’El numero que diste es mayor’)
if n<z: print (’El numero que diste es menor’)
if n==z or c>4: break
if n==z: print (’Adivinaste!’)
else: print (’Perdiste. El numero es’,z)
3 R. Espejel