这个通过字符串方法提取的代码如何工作?

时间:2013-04-05 13:48:58

标签: python variables

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

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

这是什么是while循环呢?为什么要将start_index与-1进行比较?

1 个答案:

答案 0 :(得分:1)

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

  

<强> str.find(sub[, start[, end]])
  返回找到substring sub 的字符串中的最低索引,以便 sub 包含在切片s[start:end]中。可选参数 start end 被解释为切片表示法。如果找不到 sub ,则返回-1。

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

可能有return data[start_index + 3:end_index]之类的内容作为下一行,在这种情况下,使用if start_index > -1:代替while语句将更具可读性。

当然 可以<{1}}再次设置为start_index