Как сгенерировать случайные числа и сравнить их с входными токенами? - PullRequest
0 голосов
/ 30 мая 2020

Итак, я пытаюсь создать функцию def number_guess (num): для того, чтобы сгенерировать некоторые случайные целые числа и сравнить их с определенными входами () и распечатать некоторые операторы.

Например, если я ввожу:

32 45 48 80

Мой целевой результат:

32 is too low. Random number was 80.
45 is too high. Random number was 30.
48 is correct!
80 is too low. Random number was 97.

Мы также используем начальное значение 900, которое заставит компьютер выбирать одно и то же случайное число при каждом запуске программы.

Пока мой код:

# TODO: Import the random module
import random

def number_guess(num):
    # TODO: Get a random number between 1-100

    random.randint(1,100)

    # TODO: Read numbers and compare to random number

    for token in tokens:
        if token < randint:
            print('{} is too low. Random number was {}.'.format(user_input[0], randint))
        elif token > randint:
            print('{} is too high. Random number was {}.'.format(user_input[1], randint))
        elif token == randint:
            print('{} is correct!'.format(randint))


if __name__ == "__main__":
    # Use the seed 900 to get the same pseudo random numbers every time
    random.seed(900)

    # Convert the string tokens into integers
    user_input = input()
    tokens = user_input.split()
    for token in tokens:
        num = int(token)
        number_guess(num)

Я пробовал: def number_guess (num): # TODO: получить случайное число от 1 до 100

    randint = ['']
    random.randint(1,100)

    # TODO: Read numbers and compare to random number

    for num in tokens:
        if token < randint:
            print('{} is too low. Random number was {}.'.format(num[0], randint))
        elif token > randint:
            print('{} is too high. Random number was {}.'.format(num[1], randint))
        elif token == randint:
            print('{} is correct!'.format(randint))

Но я Я не очень понимаю формат и как функции для этого должны работать. Любая помощь приветствуется!

Ответы [ 3 ]

1 голос
/ 30 мая 2020

Вы должны заменить это:

randint = ['']
random.randint(1,100)

на это:

randint = random.randint(1,100)
0 голосов
/ 30 мая 2020

В вашем коде было несколько проблем, главная из которых заключалась в том, что вы ничего не делали со случайным числом, которое вы сгенерировали, и пытались получить к нему доступ через имя randint, что вызвало бы исключение «undefined name».

Несколько упрощенная версия вашего кода, которая также будет работать, будет выглядеть так:

import random

tokens = [32, 45, 48, 80]

def number_guess():
    secret = random.randint(1,100)
    for token in tokens:
        if token < secret:
            print('{} is too low. Random number was {}.'.format(token, secret))
        elif token > secret:
            print('{} is too high. Random number was {}.'.format(token, secret))
        elif token == secret:
            print('{} is correct!'.format(secret))

if __name__ == "__main__":
    # Use the seed 900 to get the same pseudo random numbers every time
    random.seed(900)
    number_guess()

Я удалил часть пользовательского ввода, нерелевантные параметры и посторонний l oop , и теперь вы получаете отзывы обо всех протестированных токенах:

32 is too low. Random number was 80.
45 is too low. Random number was 80.
48 is too low. Random number was 80.
80 is correct!
0 голосов
/ 30 мая 2020

Вам необходимо сохранить ваш random.randint() вызов в памяти.

Используйте переменную вроде randint = random.randint(), так как теперь она будет работать в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...