как проверить, соответствует ли напечатанное значение random.choice переменной «угадай» - PullRequest
0 голосов
/ 06 февраля 2019

По сути, я пишу базовый код "hello world", чтобы освежить мою память, и я застрял.Я хочу напечатать случайный выбор из списка numbers и проверить, совпадает ли мой начальный x с выходом, который был выбран случайным образом.Однако, когда я запускаю код, я получаю print("nice"), даже если числа не совпадают.Вот код:

import random

numbers = [1, 2, 3, 4, 5, 6]
x = int(input("Enter your guess: "))

def random_choice(numbers):
    if x in numbers:
        print(random.choice(numbers))
        if numbers.count(x):
            print("nice")
        else:
            print("not nice")


random_choice(numbers)

1 Ответ

0 голосов
/ 06 февраля 2019

numbers.count(x) вернет число вхождений x в числах, поскольку в этой точке кода вы уже знаете, что в нем есть хотя бы одна копия x (поскольку эта строка находится внутриif, который проверяет x in numbers), он всегда будет возвращать положительное число, которое неявно приведено к True

. Возможный подход - сохранить случайное значение и сравнить с x:

import random

numbers = [1, 2, 3, 4, 5, 6]
x = int(input("Enter your guess: "))

def random_choice(numbers):
    if x in numbers:
        temp = random.choice(numbers)
        print(temp)
        if temp == x:
            print("nice")
        else:
            print("not nice")


random_choice(numbers)
...