【发布时间】:2016-07-30 13:37:49
【问题描述】:
这是我目前的代码:
print "What equation would you like"
a = raw_input()
print "What's", a
b = input()
print a == b
我想提示用户输入数学方程式,例如3+4。
我一直在尝试使用 input() 将其转换为 Python 3,但是,因为 input() 实际上会求解方程,所以下面的下一行将打印方程的答案,如下所示:What's 7。
由于这个想法试图解决为变量a 输入的方程,因此代码的整个想法毫无意义,因为他们可以按字面意思输入7,下一行将打印出True,因为7 == 7 .
有没有什么方法可以让我输入像3+4 这样的等式并实际输出What's 3+4 而无需Python 告诉我最终结果是False?
哦,关于:Math operations from string,我实际上在发布这个问题之前确实看到了那个帖子,它看起来基本上是让 python 输出一个方程的答案,这完全违背了我试图实现的目标。相反,我想让 python 告诉我我输入的答案是正确还是错误,因此是真假。
关于我之前的帖子,它只是为了回答我手动放入脚本中的方程式。但是,由于我想要求用户在新脚本中输入数学方程式,所以以前使用的方法不起作用。
我也尝试过 ast.literal_eval(),但我得到了这个错误...
Traceback (most recent call last):
File "/tmp/KANTL/Math.py", line 7, in <module>
print literal_eval(a) == literal_eval(b)
File "/usr/lib/python2.7/ast.py", line 80, in literal_eval
return _convert(node_or_string)
File "/usr/lib/python2.7/ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
【问题讨论】:
-
您是否尝试过将
raw_input()用于a? -
回应 Tigerhawk - 是的,它仍然告诉我 False for 'print a == b'
-
您是否希望得到两个表达式,按原样显示它们,然后计算它们并比较它们是否相等?
-
袖珍计算器基本上是
eval()机器,这使得在PC 上使用强大的编程语言来模拟它们很难安全地进行。袖珍计算器没有完整的键盘,没有用于擦除硬盘的模块,无法传播病毒等等。我建议在其他地方寻找教育项目。像刽子手这样的简单游戏是一个不错的选择(基于文本的 RPG 并不理想,因为它们往往会使开发人员陷入内容和细节问题,使源代码臃肿并弄得一团糟)。
标签: python python-2.7 math boolean