Привет, пытаясь ответить как можно лучше: Очень просто: пока l oop 0 проверяет конец строки, в то время как l oop 1 проверяет конец тега (или строки), пока l oop 2 проверки конца значения (или строки)
Более подробно:
i = 0
[WHILE L OOP 0] i = 0 - начало строки, и пока l oop повторяется до тех пор, пока i не достигнет длины строки, чтобы проверить, все ли еще содержимое строки.
while i < len(line):
Предложение if проверяет, открывается ли тег html.
if line[i] == '<':
i = i + 1
[WHILE L OOP 1] В этом случае он добавляет 1 к i и запускает другой, пока l oop до тех пор, пока тег не закроется (>) или не будет достигнут конец строки.
while i < len(line) and line[i] != '>':
tag += line[i]
i = i + 1
Если тег не является int в списке полей сверху, он разбивает While-L oop 0
if tag not in fields:
break;
Это +1 добавляется, когда l oop был успешным и тег завершен, к go следующему символу в строке
i = i + 1
[WHILE L OOP 2] * 10 34 * Затем он переходит к следующему символу и предполагает, что наступает значение . В то время как l oop зацикливается, пока не найдет начало тега html. '<' Или строка в конце. </p> while i < len(line) and line[i] != '<':
value += line[i]
i = i + 1
Затем она разрывает внешнее , а l oop 0 .
break
Рад обратной связи и улучшения моего ответа. Приветствия