You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含简单数学表达式的字符串转为整数?Python新手求助

为什么会报错?

你第二个例子里的8-2是Python的算术表达式,运行时会直接计算出结果6;但第三个例子里的"8-2"是字符串,int()函数只能转换纯数字格式的字符串(比如"8"),没法解析带运算符的表达式字符串,所以抛出ValueError。

怎么得到预期输出?

方法1:用eval()快速实现

eval()可以执行字符串中的Python表达式,正好符合你的需求:

lista = ["8-2", "6-2"]
lista = map(eval, lista)
print(list(lista))  # 输出 [6, 4]

⚠️ 注意:如果这些字符串来自不可信的来源(比如用户输入),不要用eval(),因为它会执行任意Python代码,有安全风险。

方法2:手动解析表达式(更安全)

如果想避免安全问题,可以自己拆分字符串里的数字和运算符,手动计算:

lista = ["8-2", "6-2"]
def compute(expr):
    # 拆分减号两边的数字
    left, right = expr.split("-")
    return int(left) - int(right)

lista = map(compute, lista)
print(list(lista))  # 输出 [6, 4]

这个方法只处理减号的情况,更可控,适合新手理解。

内容的提问来源于stack exchange,提问作者anio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 06:15:47