新手小白求助python 关于分割解析字符串的问题
题目要求是Write code using find() and string slicingto extract the number at the end of the line below(text = "X-DSPAM-Confidence: 0.8475"). Convert the extracted value to a floating point number and print it out.我写的code是
text = "X-DSPAM-Confidence: 0.8475";
a = data.find(" ",:)
print(a)
b = data.find(5)
print(b)
c = data
print(c)
最后答案应该是0.8475
求问1)这代码第二行为啥有问题, 2)怎样改这段代码比较好, 谢谢🙏 是这个意思吗
>>> text = "X-DSPAM-Confidence: 0.8475"
>>> print(text.split(":")[-1])
0.8475
>>> 你这代码写的...
首先,字符串叫text,你用data.find???
其次,谁教你find是那么用的??
还有,find的参数必须是字符串,填个数字??
data = "X-DSPAM-Confidence: 0.8475";
a = data.find(" ")
print(a)
b = data.find('5')
print(b)
c = data
print(c) 本帖最后由 赚小钱 于 2020-7-8 10:02 编辑
1. data 是什么玩意
2. data.find(" ")
3. find 接受字符串,5是什么鬼
4. "X-DSPAM-Confidence: 0.8475" 里面究竟有几个空格
In : text = "X-DSPAM-Confidence: 0.8475";
In : a = text.find(" ")
In : print(a)
19
In : b = text.find("5")
In : print(b)
28
In : c = text
In : print(c)
0.8475
当然,如果是我写的话,会是这个样子
float(text.split(":").strip()) 本帖最后由 yhhpf 于 2020-7-8 10:00 编辑
>>> text = "X-DSPAM-Confidence: 0.8475"
>>> a = text.find(".")
>>> a
24
>>> b = text
>>> b
'0.8475'
>>> type(b)
<class 'str'>
>>> b = float(b)
>>> type(b)
<class 'float'>
>>> print(b)
0.8475
第一,题目没让你用正则表达式,让你用find()函数和切片去将text中的浮点数值取出,并转成浮点类型打印出来;
通过find找到"."(因为好多空格呀,哈哈),然后用切片取出.左边一位到最后,取出之后用type()查看会发现是str字符串,所以通过b=float(b)转换为浮点类型,最后打印出来; 本帖最后由 Twilight6 于 2020-7-8 10:25 编辑
find 第一个参数填的是需要查找的字符,第二个参数是开始的位置参数,第三个是结束的位置参数,都是指查找的范围,如果没填默认是整个字符串范围,所以这里的find 用法错了
你的 data 参数应该改成 text ,因为你data 都没有定义
最后一步列表切片是包含左端不包含右端的元素,所以应该改成 ,还有题目要求提取出来后i转为浮点型,那么要加上 float 转化为浮点型下
text = "X-DSPAM-Confidence: 0.8475"
a = text.find("0")
print(a)
b = text.find("5")
print(b)
c = float(text)
print(c)
在这里单纯提取最后的数字这样改就行:
text = "X-DSPAM-Confidence: 0.8475"
a = text.find("0")
c = float(text)
print(c)
输出结果:
0.8475
感谢各位大神指导
页:
[1]