文字列メソッドを使用して Web サイトからデータを抽出するためのこのコードを読みました。
def extract_results(data)
start_index= data.find("<p>")
while -1 != start_index:
end_index = data.find("</p>", start_index)
ここでwhileループは何をしていますか? start_index が -1 と比較されるのはなぜですか?
str.find()
テキストが見つからない場合の戻り値は -1 です。
str.find(sub[, start[, end]])
subが slice に含まれるように、 部分文字列subが見つかった文字列内の最小のインデックスを返します。オプションの引数startとendは、スライス表記のように解釈されます。subが見つからない場合は -1 を返します。s[start:end]
ループは、そうでない場合、while
効果的にコードを無限ループに陥らせ、あなたが私たちと共有したスニペットに続くコードがない限り役に立たない.start_index
-1
おそらくreturn data[start_index + 3:end_index]
、次の行のようなものがあると思われます。その場合、ステートメントif start_index > -1:
の代わりに使用すると、はるかに読みやすくなります。while
もちろん、さらに下に設定されている可能性もあります。start_index