繁体   English   中英

如何将包含数字和运算符的字符串转换为结果?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM