Python如何将包含数字和运算符的字符串转换为计算结果?
实现运算表达式字符串转计算结果的方案
你现在的代码直接打印变量a只会输出字符串原文,Python不会自动解析字符串内部的运算逻辑,需要手动做表达式求值。
最简单的实现方案
直接使用Python内置的eval()函数,它可以自动解析字符串内的四则运算逻辑,遵循先乘除后加减的运算优先级,刚好可以得到你要的11的结果。
修改后的代码如下:
a = "1+5*6/3" n = eval(a) print(n)
运行后输出为11,符合需求。
注意事项
eval()会执行字符串内包含的任意Python代码,如果你要解析的表达式来自不可信的外部输入,会存在代码注入的安全风险。如果是自用、表达式来源完全可控的场景,用这个方案足够简洁高效。
如果需要处理不可信输入,你可以选择:
- 自己手写四则运算解析器,拆分字符串后按照优先级计算
- 使用专门的安全表达式求值库替代
eval()
内容的提问来源于stack exchange,提问作者Youcefdmd
相关产品推荐
相关产品推荐

