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
相关产品推荐
相关产品推荐

