Моя программа на Python говорит, что ответ неправильный, когда он есть? - PullRequest
0 голосов
/ 29 декабря 2018

Я не знаю, почему это говорит, что это неправильно, когда это не так.Я ввожу правильный ответ, и он говорит, что это не правильный, правильный ответ - это то, что я ввел

import random
x = 1
score = 0
num = 1
while x == 1:
    a = random.randint(10, 201)
    b = random.randint(1, 201)
    a = int(a)
    b = int(b)
    c = a / 100 * b
    print ("What is")
    print (b)
    print ("% of")
    print (a)
    num = input()
    if c is num :
        print ("Well done!")
        score = score + 1
    elif c != num :
        print ("That is not correct, the correct answer is ", c)

Ответы [ 3 ]

0 голосов
/ 29 декабря 2018

использование is сравнение в этом случае некорректно, если сравнение основано на объекте.

вы должны использовать ==, так как вам нужно сравнивать фактические значения переменных

так что

if c is num :

будет таким

if (c == num):
0 голосов
/ 29 декабря 2018
import random
x = 1
score = 0
num = 1
while x == 1:
    a = random.randint(10, 201)
    b = random.randint(1, 201)
    c = a / 100 * (b *1.0) # adding ‘* 1.0’ makes sure c is a float. 
    print ("What is %s\% of %s?" %(b, a)) # combined the prints in one line
    num = float(input()) # Change input to float
    if c == num :
        print ("Well done!")
        score = score + 1
    elif c != num :
        print ("That is not correct, the correct answer is ", c)
0 голосов
/ 29 декабря 2018

Существует разница между '==' и 'is' в python.

'==' проверяет, совпадает ли значение, в то время как
'is' проверяет, являются ли они точнымитот же объект
См. также: Есть ли разница между `==` и `is` в Python?

Кроме того, input () возвращает строку, но вы сравниваете ее счисло.Вы должны сначала преобразовать пользовательский ввод в число, используя int (num) или float (num)

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