kristin2303 发表于 2020-7-8 09:49:26

新手小白求助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)怎样改这段代码比较好, 谢谢🙏

wp231957 发表于 2020-7-8 09:53:05

是这个意思吗

>>> text = "X-DSPAM-Confidence:    0.8475"
>>> print(text.split(":")[-1])
    0.8475
>>>

qiuyouzhi 发表于 2020-7-8 09:55:02

你这代码写的...
首先,字符串叫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 09:57:07

本帖最后由 赚小钱 于 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 09:57:41

本帖最后由 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:01:00

本帖最后由 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





kristin2303 发表于 2020-7-8 10:51:30

感谢各位大神指导
页: [1]
查看完整版本: 新手小白求助python 关于分割解析字符串的问题