Reto: Intervalos
Generar un número aleatorio entre 1 y 120. Decir si se encuentra en el intervalo entre 10 y 50, o bien si es mayor de 50 hasta 100, o bien si es mayor de 100, o bien si es menor de 10.
Método 1
Primero importamos la libreríarandom
que nos permitirá trabajar con números aleatorios.Generamos un número aleatorio entero usando
random.randrange
.Con una estructura condicional
if
clasificamos el valor según el intervalo al que pertenece.La estructura condicional también usa
elif
que es la abreviatura de 'else if' que podríamos traducir como "y si". Al final tenemos un else
que indica "y en caso contrario" para recoger los valores de x
que no están en ninguno de los otros intervalos.import random
x = random.randrange(120)
print('Numero elegido:', x)
if x<10:
print('El numero es menor de 10')
elif x<50:
print('El numero esta entre 10-50')
elif x<100:
print('El numero esta entre 50-100')
else:
print('El numero es mayor que 100')
Método 2
En este caso trabajamos con listas. Primero generamos una lista. Luego usamosrandom.choice
que nos permite elegir aleatoriamente un valor entre todos los de la lista. Finalmente usamos el mismo condicional que en el caso anterior.import random
y =list(range(1,121))
x = random.choice (y)
print('Numero elegido:', x)
if (x < 10 ):
print('El numero es menor de 10')
elif (x <50):
print('El numero esta entre 10-50')
elif (x <100):
print('El numero esta entre 50-100')
else:
print('El numero es mayor que 100')
Método 3
Generamos el número aleatorio conrandom.randint
.Creamos un diccionario con la variable
d
, donde la clave son los números del 1, 2, 3, 4 que son los cuatro casos posibles que podemos imprimir. El valor asociado a cada clave es cada una de las cuatro frases que se puede llegar a imprimir.1:'El número es menor de 10',
2:'El número está entre 10-50',
3:'El número está entre 51-100',
4:'El número es mayor que 100'
import random
x=random.randint(1, 120)
print('Número elegido:', x)
d={1:'El número es menor de 10',2:'El número está entre 10-50',3:'El número está entre 51-100',4:'El número es mayor que 100'}
z=1+len([i for i in [9,50,100,121] if i<x])
print(d[z])
La línea que realmente hace el trabajo duro es la que calcula la variable
z
.La sentencia
len
calcula la longitud de la lista creada. Luego sumamos 1 ya que las posiciones de una lista comienzan en cero y nosotros el diccionario le hemos comenzado en uno.Finalmente se imprime el valor del diccionario asociado con la clave
z
.
import random
ResponderEliminardef aleatorio1():
a = random.randint(1, 120)
if a < 10:
print (f"{a} , es menor de 10")
if a > 10 and a <=50:
print (f"{a} ,intervalo entre 10 y 50")
if a >= 51 and a <=100:
print (f"{a}, intervalo entre 51 y 100")
elif a >= 101:
print(f"{a}, Mayor que 100")
print ("Hola")
aleatorio1()
import random as ran
ResponderEliminarresult = (ran.randrange(120))
print (result)
if result < 10:
print("es menor a 10")
elif result >= 10 and result <= 50:
print("se encuentra entre 10 y 50")
elif result > 50 and result <= 100:
print("se encuentra entre 51 y 100")
elif result > 100:
print("es mayor a 100")
pues yo lo hice de esta manera , me funciona bien :)
ResponderEliminarfrom random import randint
"""Generar un número aleatorio entre 1 y 120.
Decir si se encuentra en el intervalo entre 10 y 50,
o bien si es mayor de 50 hasta 100,
o bien si es mayor de 100,
o bien si es menor de 10."""
numeroX = randint(1,120)
if numeroX <10:
print('el numero es menor que 10','numero: ',numeroX)
elif numeroX >= 10 and numeroX <=50:
print('el numero se encuentra en el intervalo entre 10 y 50', 'numero',numeroX)
elif numeroX > 50 and numeroX <=100:
print("el numero si es mayor de 50 hasta 100",'numero: ',numeroX)
else:
print('el numero es mayor de 100','numero: ',numeroX)
pues el método 1 , no funciona al 100%
ResponderEliminarpor que si cae 50,
cae en la 3ra condición,
es mayor de 50 hasta 100,
por donde debe entrar en la 2da condición,
ya que me esta pidiendo que le informe
que el numero que callo es == 50
debe imprimir intervalo entre 10 y 50,