Проверка, равны ли две переменные - PullRequest
0 голосов
/ 25 июня 2018

В моем коде я делаю основную игру умножения.

Но в моей игре

Когда вы получаете правильный ответ, он говорит, что вы ошиблись

Вот весь мой код:

import random

score = 0
while True:
    num1 = random.choice(range(1,12))
    num2 = random.choice(range(1,12))
    answer = num1 * num2
    a = input("Solve for " + str(num1) + "x" + str(num2))
    if a == answer:
        print("congrats you got it right")
        score += 1
    else:
        print("Wrong sorry play again")
        print("Score was: " + str(score))
        break

Когда я получаю правильный ответ, я получаю

Solve for 7x10 70
Wrong sorry play again
Score was: 0

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Функция input возвращает то, что было введено как строка ..., чтобы сравнить ее с ответом, вам нужно либо преобразовать ее в int:

if int(a) == answer:

или наоборот (преобразовать ответ в str):

if a == str(answer):

Первый может вызвать исключение, если a не разбирается на int. Здесь документы .

PS: Мне действительно интересно, как ваша случайная библиотека выбрала 1070 выборок от 0 до 11 ...

0 голосов
/ 25 июня 2018

Или используйте int(input()):

import random

score = 0
while True:
    num1 = random.choice(range(1,12))
    num2 = random.choice(range(1,12))
    answer = num1 * num2
    a = int(input("Solve for " + str(num1) + "x" + str(num2)))
    if a == answer:
        print("congrats you got it right")
        score += 1
    else:
        print("Wrong sorry play again")
        print("Score was: " + str(score))
        break
0 голосов
/ 25 июня 2018

Другие языки могут позволить вам избежать неприятностей, но Python строго типизирован. Функция ввода получает строку, а не число. Числа не могут быть равны строкам. Преобразуйте число в строку или строку в число, прежде чем сравнивать их. Вы можете использовать str или int для конвертации.

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