无论如何返回'不正确'

时间:2015-11-21 19:05:07

标签: python python-3.x math

这被标记为重复,我当时并未意识到这个问题,但我将在接下来的48小时内将这篇文章记下来,道歉。

我目前正在开发一个python (v3.5.0:374f501f4567)程序,该程序使用乘法,加法或减法生成一个ranom方程式。该代码完美地工作直到最后的障碍。当试图回答如果答案是正确或不正确的时候,我会彻底难倒。当我使用以下代码时:

import random
from operator import add,sub,mul
x=random.randint(0,10)
y=random.randint(0,10)
eqn=(add, sub, mul)
eqnchoice=random.choice(eqn)
eqnstring={add:'+',sub:'-',mul:'*'}
useranswer=0
def eqngenerator():
    random.seed
    answer=eqnchoice(x,y)
    answer=round(answer,2)
    print("what's the answer to",x,eqnstring[eqnchoice],y,"=?\n")
    useranswer=input("Enter the answer here:")
    if useranswer==answer:
        print('Correct!')
    else:
        print('Incorrect!')

print(eqngenerator())

我遇到了以下问题,如下面的屏幕截图所示。

the first image is an incorrect answer returning 'incorrect!'

The second image is a correct answer but, it is also returning 'incorrect!'

我很困惑为什么会这样,如果有人可以提供帮助请。 谢谢你的时间。

2 个答案:

答案 0 :(得分:1)

input返回一个字符串,因此您需要:

useranswer=float(input("Enter the answer here:"))

如果用户输入任何其他值,然后输入数字,则会引发错误,因此您可以:

def eqngenerator():
    random.seed
    answer=eqnchoice(x,y)
    answer=round(answer,2)
    print("what's the answer to",x,eqnstring[eqnchoice],y,"=?\n")
    useranswer=input("Enter the answer here:")
    try:
        if useranswer==answer:
            print('Correct!')
        else:
            print('Incorrect!')
    except ValueError:
        print('Incorrect!')

答案 1 :(得分:1)

input()将在你的useranswer变量中给你一个字符串。它需要在使用前转换为数字,例如float或int

new

如果您知道计算的答案将始终为整数

,请使用int