我需要以某种方式将数学input(str)
转换为数字,
例如:
4-3*2-1+5 = ((((4-3)*2)-1)+5).
当前代码如下所示:
Answer = input ('Put your answer here: ')
4-3*2-1+5
不知何故,我需要将字符串重新生成更小的片段,以便从左到右读取,并将数字重新生成整数,但我不知道如何做到这一点。
我试着去做
Answer.split('+','-','*','/')
但上面写着TypeError: split() takes at most 2 arguments (4 given)
我还尝试将答案添加到列表中,看看这是否对我有帮助:
li.append(Answer)
(li = ['4-3*2-1+5']
但我看不出有什么好处..
请帮帮我!
(我是SOF的新手,所以如果有任何信息丢失,请告诉我,我会尝试纠正它)。
发布于 2013-12-16 20:00:26
您需要编写的是用于简单表达式的解析器和简单赋值器。
我会开始阅读以下任何一篇文章:
还有许多其他的解析器库,但这些只是其中的一小部分。
您也可以只使用rply库,如果您查看PyPi页面,就会发现它有一个示例,可以直接实现简单的表达式解析器和计算器,就像您在问题中描述的那样。
https://stackoverflow.com/questions/20610398
复制相似问题