|
发表于 2017-5-3 15:06:09
|
显示全部楼层
- >>> import ast
- >>> exp = "1 - 2 * ( (60-30 +(9-2*5/3 + 7 /3*99/4*2998 +10*568/14 )*(-40/5)) - (-4*3)/ (16-3*2) )"
- >>> ast.dump(ast.parse(exp,'<string>','eval'))
- 'Expression(body=BinOp(left=Num(n=1), op=Sub(), right=BinOp(left=Num(n=2), op=Mult(), right=BinOp(left=BinOp(left=BinOp(left=Num(n=60), op=Sub(), right=Num(n=30)), op=Add(), right=BinOp(left=BinOp(left=BinOp(left=BinOp(left=Num(n=9), op=Sub(), right=BinOp(left=BinOp(left=Num(n=2), op=Mult(), right=Num(n=5)), op=Div(), right=Num(n=3))), op=Add(), right=BinOp(left=BinOp(left=BinOp(left=BinOp(left=Num(n=7), op=Div(), right=Num(n=3)), op=Mult(), right=Num(n=99)), op=Div(), right=Num(n=4)), op=Mult(), right=Num(n=2998))), op=Add(), right=BinOp(left=BinOp(left=Num(n=10), op=Mult(), right=Num(n=568)), op=Div(), right=Num(n=14))), op=Mult(), right=BinOp(left=UnaryOp(op=USub(), operand=Num(n=40)), op=Div(), right=Num(n=5)))), op=Sub(), right=BinOp(left=BinOp(left=UnaryOp(op=USub(), operand=Num(n=4)), op=Mult(), right=Num(n=3)), op=Div(), right=BinOp(left=Num(n=16), op=Sub(), right=BinOp(left=Num(n=3), op=Mult(), right=Num(n=2))))))))'
- >>>
复制代码 |
|