Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能限制eval()的使用吗?(PYTHON)_Python_Eval - Fatal编程技术网

我能限制eval()的使用吗?(PYTHON)

我能限制eval()的使用吗?(PYTHON),python,eval,Python,Eval,我正在制作一个程序,它接收大量输入并返回基于它的内容。比如说,如果某人做了3+4-(77**3),但我如何限制它,使使用它的人只能这样做。如中所示,我是否可以限制它,使此人无法键入打印(“”),因为这将返回“。我能让他只做数学运算吗?或者这是不可能的,也是一个太多的问题?我使用内置函数,如.isalpha(),以及元组来限制eval()的使用。我个人构建了一个简单的计算器,通过一个元组限制所有单词和字母,并通过输入字符串上的循环进行检查。 这可以防止代码被传递,因为只有一个数学函数应该被传递 祝

我正在制作一个程序,它接收大量输入并返回基于它的内容。比如说,如果某人做了
3+4-(77**3)
,但我如何限制它,使使用它的人只能这样做。如中所示,我是否可以限制它,使此人无法键入
打印(“”
),因为这将返回
。我能让他只做数学运算吗?或者这是不可能的,也是一个太多的问题?

我使用内置函数,如
.isalpha()
,以及元组来限制
eval()
的使用。我个人构建了一个简单的计算器,通过一个元组限制所有单词和字母,并通过输入字符串上的循环进行检查。 这可以防止代码被传递,因为只有一个数学函数应该被传递


祝你好运:)

简短的回答:没有光明!谢谢您的回复。:)您可以通过不使用eval而自己解析数学表达式来限制它。
ast.literal\u eval
eval
更安全
json
也是创建有效字典和列表的好工具<代码>symphy处理符号数学。除此之外,我可以想象使用
re
来测试有效字符,如数字和
+-/*
@hpaulj。如果你想做得对,这是一项不
re
的工作。