2015-04-03 4 views
-3

我正在做一個數學測試,如果用戶將正確的輸入,我想它打印correct.I哪裏有這個簡單的if else語句不匹配算術答案

answer = (input) ("What is your answer?") 
maths = eval(str(num1) + operation + str(num2)) 


if answer == maths: 
    print ('Correct') 

else: 
    print('Wrong') 

但是它不工作。它不打印正確,只是輸入錯誤是否輸入正確。 歡呼阿隆

+0

你能更具體怎麼不起作用? [問] – 2015-04-03 10:33:10

+0

你試過調試嗎?你可以檢查'maths'值,'操作',...這就是你修復bug的方法。 – 2015-04-03 10:47:05

+0

你確定你使用Python 2而不是Python 3嗎? 'print(repr(answer))'和'print(repr(maths))'輸出是什麼? – 2015-04-03 10:55:10

回答

0

input()返回一個字符串值,而不是一個整數。你不能比較整數,字符串,並期望他們是平等的:

>>> '42' == 42 
False 

將您輸入到一個整數第一:

answer = input("What is your answer?") 
answer = int(answer) 

這可能會導致一個ValueError例外,但是如果輸入的是不是數字。有關如何處理這種可能性的選項,請參見Asking the user for input until they give a valid response