lunes, 24 de septiembre de 2018

Adivina el número secreto en Python

Reto: Adivina el número secreto

Se genera un número aleatorio entero entre 1 y 100. El usuario debe adivinar el número secreto, diciendo en cada tirada si es mayor o menor.




Método 1

Importamos la librería random para generar el número aleatorio secreto n. Preguntamos al usuario por el primer número. Se añade int antes del input para convertir su respuesta en un número entero, ya que si esto no se hace se capturaría un string. Nos metemos en un bucle de tipo while donde la condición analiza si el número proporcionado por el usuario es distinto del número secreto. Dentro de bucle creamos un condicional if para el caso en que el número sea mayor o bien sea menor que el número secreto. En cada caso informamos al usuario con un mensaje donde se le pide que de otro número. Fuera del bucle tenemos una última línea de código que imprime un mensaje donde se felicita al usuario por haber adivinado el número secreto n.

import random
n=random.randrange(1,100)
nu=int(input('Dime el número que crees que he elegido: '))
while nu!=n:
    if nu>n:
        nu=int(input('El número es mas pequeño'))
    elif nu<n:
        nu=int(input('El número es mas grande'))
print('Felicidades has adivinado que el número secreto es:',n)


Método 2

En este método hemos añadido un contador c para ir anotando las tiradas que se realizan y al final informar al usuario sobre el número de tiradas necesarias hasta que ha adivinado el número secreto.



import random
n=random.randrange(1,100)
nu=int(input('Dime el número que crees que he elegido '))
c=1
while nu!=n:
  c+=1
  if nu>n:
      nu=int(input('El número es mas pequeño'))
  elif nu<n:
      nu=int(input('El número es mas grande'))
print('Felicidades has adivinado que el número secreto es:',n)
print('Y lo has adivinado en',c,'intentos.')

5 comentarios:

  1. import random
    a = random.randint(1, 100)
    b = int(input("1Digite número entre 1 y 100: "))
    while a != b:
    if a < b:
    b = int(input(f"2Digite un número menor de {b}: "))
    if a > b:
    b = int(input(f"3Digite un número mayor {b}: "))
    if a == b:
    print ("OK, el número secrerto es", b)

    ResponderEliminar
  2. import random
    numero_secreto=random.randint(1,101)
    while (numero := int(input("Dime un número entre 1 y 100 : "))) not in range(1,101): pass
    while numero!=numero_secreto:
    if numero<numero_secreto:
    print('el número es mayor')
    try:
    while (numero := int(input('Prueba de nuevo: '))) not in range(1,101): pass
    except ValueError:
    print('introduce valor numérico: ')
    else:
    print('el número es menor')
    try:
    while (numero := int(input('Prueba de nuevo: '))) not in range(1,101): pass
    except ValueError:
    print('introduce valor numérico: ')

    print('lo lograste!!!')
    print('El número oculto era el {}'.format(numero_secreto))

    ResponderEliminar
  3. #Se genera un número aleatorio entero entre 1 y 100.
    #El usuario debe adivinar el número secreto diciendo en cada tirada si es mayor o menor.
    from random import randint
    x=randint(1,100)

    num=int(input('Adivina el Numero que estoy pensando!\nIntroduzca un numero entre el 1 y 100:'))
    cont=0
    while x!=num:
    if num>x:
    p='bajo'
    elif num<x:
    p='alto'
    num=int(input(f'El numero debe ser mas {p}, intentelo de nuevo!: '))
    cont+=1
    print(f'Es Correcto el numero es: {x}, y ha utilizado {cont} intentos para adivinarlo!, Felicitaciones.')

    ResponderEliminar
  4. from random import randint

    def numero_aletorio():

    while True:
    try:
    num = randint(1, 100)
    print('\n>> NUEVO NUMERO: ', num)
    select = int(input('escriba [1] si el siguiente numero es mayor, [2] si es menor o 3 si desea salir: '))
    print('seleccionaste: ',select)
    num2 = randint(1, 100)
    print('el numero es: ',num2)

    if num < num2 and select == 1:
    print('\n!!!ACERTASTE, el numero: ', num2 ,'es mayor que: ', num)
    elif num > num2 and select == 2:
    print('\n!!!ACERTASTE, el numero: ', num2, 'es menor: ', num)
    elif select == 3:
    print('Has salido del programa')
    break
    elif select != 1 and select != 2 and select != 3:
    print('\nSelecciona una opcion valida')
    else:
    print('\nno acertaste, vuelve a intentarlo')
    except ValueError:
    print('>> ERROR: escriba caracteres validos')

    numero_aletorio()

    ResponderEliminar
  5. EL MIO ES MAS COMO UN JUEGO DE ADIVINA QUIEN SI LO HICE COMO EN EL RETO PERO DECIDI REBUSCAR MAS EN EL CODIGO Y SALIO ESO

    def num_aleatorio():
    print("[[[[ COMO JUGAR ]]]]\n", "INSERTA UNA PALABRA \n", "[SUPERIOR significa que es mayor o igual a 50] \n", "[MENOR significa que es menor a 50]\n","SEGUN SEA LO ADECUADO")
    from random import randint
    my_variable= str (randint(1,100))

    my_first_variable= len(str (input("inserte una palabra [SUPERIOR] [MENOR]--->")))



    for x in my_variable:

    MY_OTHER_VARIABLE=int (x)
    if MY_OTHER_VARIABLE<=50 and 5 == my_first_variable :
    print("has ganado, el numero secreto es ----> ",my_variable)
    return x

    if MY_OTHER_VARIABLE>50 and 8 == my_first_variable :
    print("has ganado, el numero secreto es ----> ",my_variable)
    return

    elif not MY_OTHER_VARIABLE >100:
    print("has perdido sigue intentando---->","EL NUMERO SECRETO ERA\n",my_variable)
    return x

    ResponderEliminar