我已经阅读了这段代码,用于通过字符串方法从网站中提取数据:
def extract_results(data)
start_index= data.find("<p>")
while -1 != start_index:
end_index = data.find("</p>", start_index)
这是什么是while循环呢?为什么要将start_index与-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
。