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