Добро пожаловать в переполнение стека!Давайте посмотрим на то, что происходит.По пути я добавил ссылки для дальнейшего чтения, прежде чем задавать дополнительные вопросы, ознакомьтесь с ними.
for incident in soup('td', width="90%"):
incident
- это произвольная локальная переменная для повторяемого значения, возвращаемого soup
.Вообще говоря, локальная переменная в выражении for
, вероятно, является списком, но может быть кортежем или даже строкой.Если возможно перебрать что-то, например, файл, то Python, вероятно, примет for
для просмотра элементов.
В этом случае soup
возвращает список td
элементов HTML сширина 90%.Мы можем видеть это из-за того, что происходит в следующей строке:
where, linebreak, what = incident.contents[:3]
where
, linebreak
и what
также являются произвольными локальными переменными.Все они присваиваются в одном утверждении.В Python это называется множественное присваивание .Откуда эти три элемента? incident.contents[:3]
запрашивает первые три элемента, используя обозначение среза .
print where.strip()
print what.strip()
Эти две строки печатают where
и what
наэкран. ¹ Но что делает strip
?Это удаляет пустое пространство.Таким образом, " some text "
становится "some text"
.
break
break
просто разрывает цикл for
после первого цикла.Это не нарушает всю программу.Вместо этого он возвращает поток программы на следующую строку после цикла.
print 'done'
Это просто делает то, что говорит, отправляя слова «сделано» на экран.Если вы используете эту программу, вы знаете, что она завершена, когда вы видите, что «выполнено» (без кавычек) появляется на экране.
¹ Чтобы быть более технически точным, они отправляют байты в стандартный вывод (обычноизвестный как стандартный вывод).