我正在python中编写一个小应用程序,让用户回答数学问题。我遇到的问题是检查他们的答案。
说有一个问题:“因子分解x^2 + 3x +2
”
有不同的方法来回答这个问题;例如:
是否有一个库可以检查答案是否与另一个答案相同?特别是一个不简化给定答案的人;这样:
(x + 1)(x + 2)
=== (2 + x)(x + 1)
但是
(x + 1)(x + 2)
!== x^2 + 3x +2
我考虑过使用wolframalpha - 这是可能的 - 如果是的话,我应该使用什么语法?
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
是的Wolfram Alpha会处理这个问题(只是将你的条件粘在搜索中,它会返回一个布尔值)。
你显然不希望每个人都这样做,所以你可以转向the Wolfram Alpha API。他们有一个Python库,它可以免费用于非商业用途,每月最多2000个电话。如果您需要商业电话或更多电话,他们会按月收取费用。
有本地选项(如Python)但你可能会遇到更多语法,格式化问题,确保用户不会传入恶意Python代码并只支持所有内容。 WA-API应该为您删除大部分问题,但首先进行测试。
答案 2 :(得分:0)
您可以尝试使用SymPy。它可能有助于解决您的问题。 http://docs.sympy.org/dev/gotchas.html#double-equals-signs
答案 3 :(得分:0)
您可能需要查看wims。 AFAIK它不是用python编写的,但它是开源的,所以你可以查看代码并获得一些想法。
答案 4 :(得分:0)
我认为你不需要像这样的东西。您的用户输入仅限于程序理解的答案(有意义的字符串),然后通过匹配问题进行反向操作以查找答案是否正确,或者采取简单的方法并选择单选按钮。因此,使用您的示例,您的程序会扩展他们给出的答案,并根据x ^ 2 + 3x +2进行检查。