我能限制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
的工作。