2015-04-03 71 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