![](/img/trans.png)
[英]how can i make sure that the user inputs a string containing only numbers, operators, and letter Q?
[英]How can I turn a string that contains numbers and operators into a result?
我想将此字符串转换为 output 为 11 的结果 n。
a = "1+5*6/3"
print (a)
eval()内置 function 可以评估 Python 表达式,包括任何算术表达式。 但请注意eval()
function 是一个安全问题,因为它可以评估任意 Python 表达式或语句,因此仅当要评估的输入受控且受信任的用户输入时才应使用。 有一些例子可以说明为什么 eval() 在这个问题中是危险的。
a = "1+5*6/3"
result = eval(a)
print(result)
Output:
11.0
使用 ast 模块替代 eval()
eval()的安全替代方法是使用ast.literal_eval 。 最近的 Python 3 版本不允许将简单字符串作为参数传递给ast.literal_eval() 。 现在必须解析字符串以构建抽象语法树 (AST),然后根据语法对其进行评估。 This related answer提供了一个示例来安全地评估简单的算术表达式。
您可以直接使用 python eval
function。
a = eval("1+5*6/3")
print(a)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.