2015-09-17 3 views
0

Я пытаюсь сделать игру умножения для своей сестры, но мой код не проходит должным образом в инструкциях if-else. Я понятия не имею, почему это так. Может кто-нибудь сказать, что я делаю неправильно?Оператор if-else if не работает должным образом

from random import randint 

print "Welcome to Multiplication Practice." 
print "\n-------" 

correct = 0 

wrong = 0 

while wrong<3: 

    a = randint(1,9) 
    b = randint(1,9) 
    print "What is %s x %s?" %(a,b) 
    c = a * b 
    action = raw_input("> ") 
    if action == c: 
     print "correct!" 
     correct +=1 

    elif action != c: 
     print "Wrong!" 
     wrong +=1 

    else: 
     print "Invalid answer." 

print correct 

print wrong 
+0

'raw_input' возвращает строку, умножение возвращает число. Они никогда не будут равными. – Barmar

+0

try 'action = int (raw_input ("> "))' –

+0

Это имеет большой смысл. Благодаря! Что-нибудь еще, что я забыл? –

ответ

0

raw_input всегда возвращает строку Вам нужно, чтобы преобразовать его в тип вы сравниваете его, в этом случае int(raw_input("> "))

0

raw_input возвращает строку. Это никогда не сравнится с числом. Вы должны преобразовать введенную строку в число:

action = int(raw_input("> ")) 
Смежные вопросы