2015-02-11 112 views
-2

我正在嘗試做一個算術測驗,但遇到了這個問題:即使我輸入正確的答案,它似乎忽略了正確的答案代碼,並直接找到不正確的答案代碼。基本上,它不接受任何正確的答案。Arthimatic Quiz不接受正確答案

import random 
num1 = (random.randrange(10)) 
num2 = (random.randrange(10)) 
correct1 = (num1*num2) 

ans1 = input("What is " + str(num1) + " multiplied by " + str(num2) + "? ") 

if ans1 == correct1: 
    print("Correct! ") 

if ans1 != correct1: 
    print(" Incorrect. ") 
    print(" The correct answer was " + str(ans1)) 

跑時,我得到的是這樣的:

What is 3 multiplied by 0? 0 
    Incorrect. 
     The correct answer was 0 

注意的答案,我的輸入如何是相同的,但它運行的代碼不正確的答案。任何人都可以幫我解決這個問題嗎?我正在使用Python 3.4。

+1

因爲''0'!= 0' - 'input'給你一個字符串*。 – jonrsharpe 2015-02-11 14:58:43

+0

不要在問題中放入*「回答」*,接受答案標記爲已回答。 – jonrsharpe 2015-02-11 15:34:23

+0

也會注意到您打印的用戶輸入爲「正確答案」 – 2015-02-12 11:06:40

回答

1

3不等於"3"。調用input(在Python3中)的結果是一個字符串,而不是數字。

用戶輸入呼叫int

... 

ans1 = input("What is " + str(num1) + " multiplied by " + str(num2) + "? ") 
ans1 = int(ans1) 

... 
1
if int(ans1) == correct1: 
    print("Correct! ") 
else: 
    print(" Incorrect. ") 
    print(" The correct answer was " + str(ans1)) 

你必須用數字比較數字。
您正在比較'3'和3