当前位置:  开发笔记 > 编程语言 > 正文

在Python中读取和运行数学表达式

如何解决《在Python中读取和运行数学表达式》经验,为你挑选了1个好方法。

使用Python,我将如何阅读(来自字符串,文件或url)数学表达式(1 + 1是一个好的开始)并执行它?

除了抓取一个字符串,文件或网址,我不知道从哪里开始.



1> Cheery..:

因为python支持一些代数形式,你可以这样做:

eval("1 + 1")

但这允许输入执行env中定义的任何内容:

eval("__import__('sys').exit(1)")

另外,如果你想支持python不支持的东西,那么这个方法会失败:

x³ + y² + c
----------- = 0
     z

您可以使用ply实现tokenizer和parser,而不是这样做.评估像'1 + 1'这样的东西不应该超过十行左右.

您也可以手动实现tokenizer和解析器.阅读有关LL和LR解析器的信息.在尝试之前,最好先学习使用解析器生成器.


SO不是私人消息服务:寻找类似信息的其他人可以找到这些问题.Eval可能是危险的,强化这个信息从来都不是坏事.即使Teifion以本身安全的方式使用它,其他读过这个答案的人也许不是.
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有