我有一个基因程序,可以将表达式树打印到一个文件中(它可以很容易地在pre/post/in fix之间切换)
似乎pre-fix是最容易解析的,所以我现在正在使用它。在
如何使用Python2.7解析这个字符串?例如,我如何解析字符串+(*(2,1),*(4,3))~~~它是2*1+4*3
f = open('expression_tree.txt', 'r')
input = f.read()
root_node_operator = input[0]
就我所能做到的。我对语法分析不太熟悉。谢谢!在
我有一个python程序,它打印表达式树的数据结构,我想在下一个python程序中解析并计算它。在
或者有没有一种方法可以将表达式树对象传递给下一个python程序,这样就不需要解析了?就像我把我的树叫做测试树一样普通股. 我能从我的另一份文件里找到吗我的bot.py?在
首先,前缀表示法不需要任何括号——您可以完全通过字符串中元素的顺序来控制操作的优先级。例如,如果您想要
2*(1+4)*3
,那么前缀表达式将变成"* * 2 + 1 4 3"
。在2*1+4*3
将变成{['+', '*', '2', '1', '*', '4', '3']
。这将处理空白跳转。然后,递归地遍历列表:如果找到运算符,则从当前位置开始从列表中获取下两个操作数;如果找到常量,则返回它。每次你从列表中提取一些东西时,向前推进当前位置。在印刷品
^{2}$将
+(*(2,1),*(4,3))
替换为(+ (* 2 1) (* 4 3))
,然后管道到scheme
如果您想使用
python
,请尝试pyparsing
。在相关问题 更多 >
编程相关推荐