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

Python字符串切片与float()转换的异常问题咨询

Python字符串切片与float()转换的异常问题咨询

我现在在做树莓派和ESP32之间的通信,用Python来回发送字符串,然后解析获取需要的数据。

我用的测试字符串是:

input_string = "2;068;060;076;030;000;000;000;000;000;000;000;000;000;000;000;000;000;000"

我想提取其中的*"068"*部分,一开始以为切片[2:4]就能拿到,然后转成浮点数:

float(input_string[2:4])

结果只得到了6.0,这明显不对。

为了搞清楚情况,我试了几个不同的切片范围,还打印了结果:

print(input_string)
print(input_string[2:4])
print(input_string[2:5])
print(float(input_string[2:5]))

输出结果是:

"2;068;060;076;030;..."
"06"
"068;"
"68.0"

我完全搞不懂为什么会这样:

  • 为什么input_string[2:4]返回的是*"06",而input_string[2:5]返回的是"068;"*?
  • 另外,"068;"里有个分号,属于非数字字符,转成float的时候应该报错才对,但为什么没报错反而得到了68.0?

是不是我忽略了什么很明显的点?

(编辑:已经修正了输出部分的缩进)

备注:内容来源于stack exchange,提问作者BECO DO MALTE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 12:13:04