我正在使用Python 3。
我想问一下最好的方法是如何在不使用eval(input("Input: "))
的情况下输入表达式?
我现在是一个简单的用户,所以我需要的是eval是一个代数计算器。
答案 0 :(得分:3)
如果您是唯一使用该应用的人,因此无需担心安全问题,请继续使用eval()
或exec()
。
否则,只需使用安全库来完成您需要的特定任务。例如。 numexpr我想是一个计算器。
答案 1 :(得分:3)
根据您的表达方式的复杂程度,ast.literal_eval
可能是更安全的选择。
答案 2 :(得分:1)
how can I input an expression without using eval(input("Input: "))
根本不要使用eval
。在Python 3.x中,input
是raw_input
的替代,因此,您不需要eval。您只需将语句写为input("Input: ")
此外,在Python 2.X中,您应该使用raw_input("Input: ")
代替eval(input("Input: "))
答案 3 :(得分:0)
我知道这可能不是您所提问题的确切答案,但这可以帮助其他一些开发人员加快他们的eval
的速度。
您可以使用Lupa library将Lua
嵌入python
中,就像在this benchmark中看到的那样,这是非常快的
查看详细答案Here。