Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 104
Текст из файла (страница 104)
Там же будут объясняться некоторые тонкости применения итерируемых инструментов, с которыми мы встретились здесь, таких как функции range и zip. Однако, как обычно, прежде чемдвинуться дальше, попробуйте ответить на контрольные вопросы.Закрепление пройденногоКонтрольные вопросы1. В чем заключаются основные различия между циклами while и for?2. В чем заключаются основные различия между инструкциями break и continue?416Глава 13.
Циклы while и for3. Когда выполняется блок else в циклах?4. Как в языке Python можно запрограммировать счетный цикл?5. Для чего может использоваться функция range в цикле for?Ответы1. Инструкция while обеспечивает способ организации универсальных циклов, а инструкция for предназначена для обхода элементов в последовательностях (в действительности – в итерируемых объектах). С помощью инструкции while можно сымитировать счетный цикл for, однако программный код получится менее компактным и может выполняться медленнее.2. Инструкция break осуществляет немедленный выход из цикла (управлениепередается первой инструкции, следующей за телом цикла while или for),а инструкция continue выполняет переход в начало цикла (в позицию непосредственно перед условным выражением в цикле while или перед извлечением очередного элемента в цикле for).3.
Блок else в циклах while или for выполняется один раз после выхода изцикла при условии, что цикл завершается обычным образом (без использования инструкции break). Инструкция break осуществляет немедленныйвыход из цикла и пропускает блок else (если таковая присутствует).4. Счетные циклы могут быть реализованы на базе инструкции while приусловии, что вычисление индексов будет производиться вручную, или набазе инструкции for, которая использует встроенную функцию range длягенерирования последовательности целых чисел. Ни один из этих способовне является предпочтительным в языке Python.
Если вам необходимо просто обойти все элементы в последовательности, везде, где только возможно,используйте простой цикл for, без функции range или счетчиков. Такая реализация и выглядит проще, и обычно работает быстрее.5. Встроенная функция range может использоваться в циклах for для организации фиксированного количества итераций, для реализации обхода смещений вместо самих элементов, для того, чтобы обеспечить пропуск элементов и чтобы получить возможность изменять список во время его обхода.Однако ни в одном из перечисленных случаев использование функции rangeне является обязательным условием, и для большинства из них имеютсяальтернативные способы – сканирование фактических элементов, использование операции извлечения среза с тремя пределами и генераторы списковзачастую являются более привлекательными решениями (несмотря на навязчивое стремление экс-C-программеров подсчитывать все подряд!).Глава 14.Итерации и генераторы, часть 1В предыдущей главе мы познакомились с двумя инструкциями циклов, имеющимися в языке Python, while и for.
Они могут использоваться при решениисамого широкого круга задач, где необходимо организовать многократное выполнение повторяющихся операций, однако необходимость перебора элементов последовательностей возникает настолько часто, что в язык Python быливведены дополнительные инструменты, делающие эту операцию более простойи эффективной. В данной главе мы начнем исследование этих инструментов.В частности, здесь будут рассматриваться родственные концепции протоколаитераций в языке Python������������������������������������������������������������������������������������������������������������ – модели, основанной на вызове методов, используемой в циклах for, а<b>Текст обрезан, так как является слишком большим</b>.