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

Python中如何计算字符串内正负数字的总和?

计算带正负数字的字符串总和

针对字符串 s = '1+6.3+3-7.6',可以用两种简单方法计算所有正负数字的总和:

方法1:字符串替换分割法

通过替换减号为 +-,让所有数字都带上符号,再按加号分割后求和:

s = '1+6.3+3-7.6'
# 将减号替换为 "+-",确保负数带符号
processed_str = s.replace('-', '+-')
# 按加号分割成数字字符串列表
num_strings = processed_str.split('+')
# 过滤空字符串,转换为float后求和
total = sum(float(num) for num in num_strings if num)
print(total)  # 输出结果:2.7

方法2:正则表达式提取法

用正则匹配所有带符号的整数/小数,再转换求和:

import re

s = '1+6.3+3-7.6'
# 匹配规则:可选负号 + 数字 + 可选小数点 + 可选后续数字
nums = re.findall(r'-?\d+\.?\d*', s)
total = sum(float(num) for num in nums)
print(total)  # 输出结果:2.7

为什么你之前的方法行不通?

  • isdigit() 只能识别0-9的字符,负号 - 和小数点 . 会被忽略,没法提取带符号的小数;
  • 直接把整个字符串转成float/int肯定失败,因为字符串里包含运算符,不是纯数字格式;
  • 转int还会因为字符串里有小数部分,触发无效字面量错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:25:18