0

我已经阅读了这段代码,用于通过字符串方法从网站中提取数据:

def extract_results(data)
     start_index= data.find("<p>")
     while -1 != start_index:
         end_index = data.find("</p>", start_index)

while 循环在做什么?为什么将 start_index 与 -1 进行比较?

4

1 回答 1

1

str.find()如果未找到文本,则返回值为-1:

str.find(sub[, start[, end]])
返回找到子字符串sub的字符串中的最低索引,使得sub包含在 slice 中s[start:end]。可选参数startend被解释为切片表示法。如果未找到sub ,则返回 -1 。

while循环有效地使代码进入无限循环,如果start_index不是-1并且没有用,除非在您与我们共享的代码段后面有更多代码。

大概有类似return data[start_index + 3:end_index]下一行的东西,在这种情况下,使用if start_index > -1:而不是while语句会更具可读性。

当然,它可能start_index再次设置得更低。

于 2013-04-05T13:50:18.030 回答