Цикл while в Python
Цикл while («пока») позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается после ключевого слова while и проверяется до выполнения тела цикла.
Цикл while используется, когда невозможно определить точное количество повторений цикла.
i = 0 # объявление переменной i для условия цикла
while i 5 : # ключевое слово ‘while’ и условие выполнение цикла
# тело цикла
print (i) # вывод значения переменной i
i += 1 # увеличение значения переменной i на единицу
Цикл while может быть бесконечным.
i = 0
while True : # условие всегда истинно
print (i)
i += 1
# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
.
>> 999
.
# Это может продолжаться долго.
Выполнение цикла можно прерывать с помощью оператора break.
i = 0
while 1 : # условие всегда истинно
if i == 3 : # если i равно 3, то вызываем оператор break
break # оператор break прерывает выполнение цикла
print (i)
i += 1
Оператор continue начинает повторение цикла заново.
i = 0
while i 5 :
i += 1 #
if i % 2 == 1 : # если значение i нечетно, то вызываем оператор continue
continue # оператор continue начинает повторение цикла заново
# в случае вызова continue код ниже не выполнится
print (i)
Как и для цикла for, для цикла while мы можем записать конструкцию else.
x = 1
while x 5 :
print (x)
x += 1
else :
print ( ‘Цикл завершен’ )
Примеры
# Пользователь вводит числа A и B (A > B). Выведите все числа от A до B включительно.
A = int ( input ( ‘Введите число: ‘ ))
B = int ( input ( ‘Введите число: ‘ ))
while A >= B:
print (A)
A -= 1
# Пользователь вводит числа до тех пор, пока не введет 0.
# Выведите количество введенных чисел (0 считать не нужно).
n = int ( input ( ‘Введите число: ‘ ))
counter = 0 # счетчик введенных чисел
while n: # n неявно преобразуется в тип bool
# если n равно 0, то выполнение цикла прервется
n = int ( input ( ‘Введите число: ‘ )) # вводим очередное число
counter += 1 # увеличиваем счетчик
print ( f ‘Количество чисел
# Ввод:
>> 1
>> 10
>> 100
>> 1000
>> 0
# Вывод:
>> Количество чисел 4
3. Наименьший делитель
# Пользователь вводит число N (N > 1). Выведите его наименьший делитель.
N = int ( input ( ‘Введите число: ‘ ))
div = 2
while N % div != 0 :
div += 1
print ( f ‘Наименьший делитель равен
# Ввод:
>> 10
# Вывод:
>> Наименьший делитель равен 2
# Ввод:
>> 15
# Вывод:
>> Наименьший делитель равен 3
# Ввод:
>> 17
# Вывод:
>> Наименьший делитель равен 17
Решение задач
Пользователь вводит числа A и B (A > B). Выведите четные числа от A до B включительно.
2. От A до B на три
Пользователь вводит числа A и B (A # Ввод:
>> 1
>> 15
# Вывод:
>> 3
>> 6
>> 9
>> 12
>> 15
Пользователь вводит числа до тех пор, пока не введет 0. Выведите сумму введенных чисел (0 считать не нужно).
# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Сумма равна: 39
Пользователь вводит числа до тех пор, пока не введет 0. Выведите максимальное введенное число (0 считать не нужно).
# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Максимум равен: 15
Пользователь вводит числа до тех пор, пока не введет 0. Выведите минимальное введенное число (0 считать не нужно).
# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0 # 0 не входит в последовательность
# Вывод:
>> Минимум равен: 1
Пользователь вводит число N. Выведите факториал число N. Факториал числа N — это произведение всех чисел от 1 до N включительно. Например, факториал числа 5 равен 120.
7. Фибоначчи (финальный босс)
Пользователь вводит число N. Выведите N-ное по счету число Фибоначчи. Последовательность чисел Фибоначчи рассчитывается по такой формуле: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1). Идея такая: каждое следующее число равно сумму двух предыдущих.
# Циклы в программировании
Циклы являются такой же важной частью структурного программирования, как условные операторы. С помощью циклов можно организовать повторение выполнения участков кода. Потребность в этом возникает довольно часто. Например, пользователь последовательно вводит числа, и каждое из них требуется добавлять к общей сумме. Или нужно вывести на экран квадраты ряда натуральных чисел и тому подобные задачи.
# Цикл while
While переводится с английского как «пока». Но не в смысле «до свидания», а в смысле «пока имеем это, делаем то».
Можно сказать, while является универсальным циклом. Он присутствует во всех языках, поддерживающих структурное программирование, в том числе в Python. Его синтаксис обобщенно для всех языков можно выразить так:
Это похоже на условный оператор if . Однако в случае циклических операторов их тела могут выполняться далеко не один раз. В случае if , если логическое выражение в заголовке возвращает истину, то тело выполняется единожды. После этого поток выполнения программы возвращается в основную ветку и выполняет следующие выражения, расположенные ниже всей конструкции условного оператора.
В случае while , после того как его тело выполнено, поток возвращается к заголовку цикла и снова проверяет условие. Если логическое выражение возвращает истину, то тело снова выполняется. Потом снова возвращаемся к заголовку и так далее.
Цикл завершает свою работу только тогда, когда логическое выражение в заголовке возвращает ложь, то есть условие выполнения цикла больше не соблюдается. После этого поток выполнения перемещается к выражениям, расположенным ниже всего цикла. Говорят, «происходит выход из цикла».
Рассмотрите блок-схему цикла:
На ней ярко-голубыми прямоугольниками обозначена основная ветка программы, ромбом – заголовок цикла с логическим выражением, бирюзовым прямоугольником – тело цикла.
С циклом while возможны две исключительные ситуации:
Если при первом заходе в цикл логическое выражение возвращает False , то тело цикла не выполняется ни разу. Эту ситуацию можно считать нормальной, так как при определенных условиях логика программы может предполагать отсутствие необходимости в выполнении выражений тела цикла.
Если логическое выражение в заголовке while никогда не возвращает False, а всегда остается равным True, то цикл никогда не завершится, если только в его теле нет оператора принудительного выхода из цикла break или вызовов функций выхода из программы – quit() , exit() в случае Python. Если цикл повторяется и повторяется бесконечное количество раз, то в программе происходит зацикливание. В это время она зависает и самостоятельно завершиться не может.
Вспомним наш пример из урока про исключения. Пользователь должен ввести целое число. Поскольку функция input() возвращает строку, то программный код должен преобразовать введенное к целочисленному типу с помощью функции int() . Однако, если были введены символы, не являющиеся цифрами, то возникает исключение ValueError , которое обрабатывается веткой except . На этом программа завершается.
Другими словами, если бы программа предполагала дальнейшие действия с числом (например, проверку на четность), а она его не получила, то единственное, что программа могла сделать, это закончить свою работу досрочно.
Но ведь можно просить и просить пользователя корректно вести число, пока он его не введет. Вот как может выглядеть реализующий это код:
- Не забываем, в языке программирования Python в конце заголовков сложных инструкций ставится двоеточие.
- В выражении type(n) != int с помощью функции type() проверяется тип переменной n. Если он не равен int, т. е. значение n не является целым числом, а является в данном случае строкой, то выражение возвращает истину. Если же тип n равен int, то данное логическое выражение возвращает ложь.
- Оператор % в языке Python используется для нахождения остатка от деления. Так, если число четное, то оно без остатка делится на 2, т. е. остаток будет равен нулю. Если число нечетное, то остаток будет равен единице.
Проследим алгоритм выполнения этого кода. Пользователь вводит данные, они имеют строковый тип и присваиваются переменной n . В заголовке while проверяется тип n . При первом входе в цикл тип n всегда строковый, т. е. он не равен int . Следовательно, логическое выражение возвращает истину, что позволяет зайти в тело цикла.
Здесь в ветке try совершается попытка преобразования строки к целочисленному типу. Если она была удачной, то ветка except пропускается, и поток выполнения снова возвращается к заголовку while .
Теперь n связана с целым числом, следовательно, ее тип int , который не может быть не равен int . Он ему равен. Таким образом логическое выражение type(n) != int возвращает F alse , и весь цикл завершает свою работу. Далее поток выполнения переходит к оператору if-else , находящемуся в основной ветке программы. Здесь могло бы находиться что угодно, не обязательно условный оператор.
Вернемся назад. Если в теле try попытка преобразования к числу была неудачной, и было выброшено исключение ValueError, то поток выполнения программы отправляется в ветку except и выполняет находящиеся здесь выражения, последнее из которых просит пользователя снова ввести данные. Переменная n теперь имеет новое значение.
После завершения except снова проверяется логическое выражение в заголовке цикла. Оно даст True , т. к. значение n по-прежнему строка.
Выход из цикла возможен только тогда, когда значение n будет успешно конвертировано в число.
Рассмотрим следующий пример:
Сколько раз «прокрутится» цикл в этой программе, т. е. сколько итераций он сделает? Ответ: 5 .
Сначала переменная i равна 0. В заголовке цикла проверяется условие i < 5, и оно истинно. Тело цикла выполняется. В нем меняется значение i, путем добавления к нему единицы.
Теперь переменная i равна 1. Это меньше пяти, и тело цикла выполняется второй раз. В нем i меняется, ее новое значение 2.
Два меньше пяти. Тело цикла выполняется третий раз. Значение i становится равным трем.
Три меньше пяти. На этой итерации i присваивается 4.
Четыре по прежнему меньше пяти. К i добавляется единица, и теперь ее значение равно пяти.
Далее начинается шестая итерация цикла. Происходит проверка условия i < 5 . Но поскольку теперь оно возвращает ложь, то выполнение цикла прерывается, и его тело не выполняется.
«Смысловая нагрузка» данного цикла – это последовательное вычитание из переменной total вводимых чисел. Переменная i в данном случае играет только роль счетчика итераций цикла. В других языках программирования для таких случаев предусмотрен цикл for , который так и называется: «цикл со счетчиком». Его преимущество заключается в том, что в теле цикла не надо изменять переменную-счетчик, ее значение меняется автоматически в заголовке for .
В языке Python тоже есть цикл for . Но это не цикл со счетчиком. В Питоне он предназначен для перебора элементов последовательностей и других сложных объектов. Данный цикл и последовательности будут изучены в последующих уроках.
Для while наличие счетчика не обязательно. Представим, что надо вводить числа, пока переменная total больше нуля. Тогда код будет выглядеть так:
Сколько раз здесь выполнится цикл? Неизвестно, все зависит от вводимых значений. Поэтому у цикла со счетчиком известно количество итераций, а у цикла без счетчика – нет.
Самое главное для цикла while – чтобы в его теле происходили изменения значений переменных, которые проверяются в его заголовке, и чтобы хоть когда-нибудь наступил случай, когда логическое выражение в заголовке возвращает False . Иначе произойдет зацикливание.
- Не обязательно в выражениях total = total — n и i = i + 1 повторять одну и ту же переменную. В Python допустим сокращенный способ записи подобных выражений: total -= n и i += 1 .
- При использовании счетчика он не обязательно должен увеличиваться на единицу, а может изменяться в любую сторону на любое значение. Например, если надо вывести числа кратные пяти от 100 до 0, то изменение счетчика будет таким i = i — 5 , или i -= 5 .
- Для счетчика не обязательно использовать переменную с идентификатором i. Можно назвать переменную-счетчик как угодно. Однако так принято в программировании, что счетчики обозначают именами i и j (иногда одновременно требуются два счетчика).
# Упражнения
Используя цикл while, выведите на экран для числа 2 его степени от 0 до 15. Возведение в степень в Python обозначается как **. Фрагмент вывода:
Написать программу с использованием while, которая будет имитировать бросание двух кубиков, т.е. случайный вывод чисел от 1 до 6. Реализуйте вывод 5 повторений.
Написать программу с использованием while, которая будет выводить 5 случайных неповторяющихся чисел от -2 до 2.
Измените последний код из урока так, чтобы переменная total не могла уйти в минус. Например, после предыдущих вычитаний ее значение стало равным 25. Пользователь вводит число 30. Однако программа не выполняет вычитание, а выводит сообщение о недопустимости операции, после чего осуществляет выход из цикла.
# Цикл — for
Цикл for в языке программирования Python предназначен для перебора элементов структур данных и некоторых других объектов. Это не цикл со счетчиком, каковым является for во многих других языках.
Что значит перебор элементов? Например, у нас есть список, состоящий из ряда элементов. Сначала берем из него первый элемент, затем второй, потом третий и так далее. С каждым элементом мы выполняем одни и те же действия в теле for. Нам не надо извлекать элементы по их индексам и заботится, на каком из них список заканчивается, и следующая итерация бессмысленна. Цикл for сам переберет и определит конец:
Результат будет выведен в консоль:
В ключевого слова for используется переменная под именем element. Имя здесь может быть любым. Нередко используют i. На каждой итерации цикла for ей будет присвоен очередной элемент из списка spisok. Так при первой прокрутке цикла идентификатор element связан с числом 10, на второй – с числом 40, и так далее. Когда элементы в spisok заканчиваются, цикл for завершает свою работу.
С английского «for» переводится как «для», «in» как «в». Перевести конструкцию с языка программирования на человеческий можно так: для каждого элемента в списке делать следующее (то, что в теле цикла).
В примере мы увеличивали каждый элемент на 2 и выводили его на экран. При этом сам список конечно же не изменялся:
Нигде не шла речь о перезаписи его элементов, они просто извлекались и использовались. Однако бывает необходимо изменить сам список, например, изменить значение каждого элемента в нем или только определенных, удовлетворяющих определенному условию. И тут без переменной, обозначающей индекс элемента, в большинстве случаев не обойтись:
Но если мы вынуждены использовать счетчик, то выгода от использования цикла for не очевидна. Если знать длину списка, то почему бы не воспользоваться while. Длину можно измерить с помощью встроенной в Python функции len():
Кроме того, с циклом while мы избавились от переменной element.
# Функция range()
Теперь пришло время познакомиться с встроенной в Python функцией range() . «Range» переводится как «диапазон». Она может принимать один, два или три аргумента. Их назначение такое же как у функции randrange() из модуля random. Если задан только один, то генерируются числа от 0 до указанного числа, не включая его. Если заданы два, то числа генерируются от первого до второго, не включая его. Если заданы три, то третье число – это шаг.
Однако, в отличие от randrange() , функция range() генерирует не одно случайное число в указанном диапазоне. Она вообще не генерирует случайные числа. Она генерирует последовательность чисел в указанном диапазоне. Так, range(5, 11) сгенерирует последовательность 5, 6, 7, 8, 9, 10 . Однако это будет не структура данных типа «список». Функция range() производит объекты своего класса – диапазоны:
Обращение к элементам списка:
Хотя изменять их нельзя, так как, в отличие от списков, объекты range() относятся к группе неизменяемых:
Результатом выполнения будет ошибка:
# Цикл for и range()
Итак, зачем нам понадобилась функций range() в теме про цикл for? Дело в том, что вместе они образуют неплохой тандем. For как цикл перебора элементов, в отличие от while, позволяет не следить за тем, достигнут ли конец структуры. Не надо вводить счетчик для этого, изменять его и проверять условие в заголовке. С другой стороны, range() дает последовательность целых чисел, которые можно использовать как индексы для элементов того же списка:
Здесь с помощью функции len() измеряется длина списка. В данном случае она равна четырем. После этого число 4 передается в функцию range() , и она генерирует последовательность чисел от 0 до 3 включительно. Это как раз индексы элементов нашего списка.
Теперь «соединим» for и range() :
В заголовке цикла for берутся элементы вовсе не списка, а объекта range. Список, элементы которого планируется перезаписывать, тут по-сути не фигурирует. Если заранее знать длину списка, то заголовок может выглядеть так: for i in range(4) . То, как используется i в теле цикла, вопрос второй. Примечание. Вместо идентификатора i может быть любой другой.
# Упражнения
Заполните список пятью случайными числами. Используйте в коде цикл for, функции range() и randint() от -20 до 20 с шагом 3.
Если объект range() передать встроенной в функции list() , то она преобразует его к списку. Создайте список с элементами от 0 до 100 и шагом 17.
Создайте список состоящий из положительных и отрицательных чисел. Посчитайте количество отрицательных элементов. Выведите исходный список и результат подсчета на экран.
Напишите программу, которая содержит список из пяти слов, измеряет длину каждого слова и добавляет полученное значение в другой список. Например, список слов – ['yes', 'no', 'maybe', 'ok', 'what'], список длин – [3, 2, 5, 2, 4]. Оба списка должны выводиться на экран.
Напишите программу генерации английских кнопок. Текст для кнопок берется из списка: ['yes', 'no', 'maybe', 'ok', 'what']. При нажатии на любую кнопку происходит перевод: смена текста кнопок на русский текст: ["да", "нет", "наверно", "ок", "что"].
Циклы for и while в Python
Еще одной важной инструкцией языка Python является цикл for/in , который можно смело назвать универсальным итератором последовательностей, поскольку он позволяет выполнять обход элементов в любых объектах, поддерживающих возможность совершения итераций. При этом сюда относятся как встроенные объекты, например, строки, списки или словари, так и объекты, создаваемые с помощью классов (о них чуть позже).
В общем виде для цикла for используется следующий синтаксис:
В ходе выполнения цикла for интерпретатор один за другим присваивает переменной заголовка элементы итерируемого объекта и выполняет для них инструкции тела цикла (см. пример №1 ). Если цикл нужно прервать, используется ключевое слово break , которое передает управление инструкции, следующей сразу за циклом. Кроме того, в цикле for разрешается использовать необязательный блок else , набор инструкций которого выполняется только после удачного завершения цикла (т.е. при отсутствии ошибки или прерывания за счет использования инструкции break ).
Пример №1. Использование цикла for (часть 1).
В примере с помощью инструкции цикла for список проверяется на превышение лимита суммы его элементов. Для этого используется знакомая нам вложенная условная инструкция if/else , которая и проверяет сумму на достижение лимита. Если в ходе очередной итерации цикла сумма не достигает указанного предела, значение счетчика суммы sum увеличивается на значение переменной заголовка цикла elem , т.е. sum += elem . После этого цикл переходит к следующей итерации и присваивает переменной elem значение следующего элемента списка. И так до тех пор, пока не будет завершен обход всех элементов списка или не будет достигнут лимит суммы. Если лимит суммы достигнут не будет, сработает набор инструкций блока else цикла, т.е. итоговая сумма будет выведена на экран. После этого будет выполнена инструкция, следующая за циклом. В случае достижения лимита, сработает набор инструкций блока else условной инструкции if , т.е. будет выведено предупреждение, а цикл будет прерван инструкцией break , которая передаст управление инструкции, опять же, следующей за циклом.
Обратите внимание, что в нашем примере были использованы два блока else : один принадлежит условной инструкции if , а другой – инструкции цикла for/in . Отличить их легко по уровню отступов. Оба блока не являются обязательными в своих конструкциях, но в нашем случае конструкция for/else , позволяет выводить итоговое сообщение не всегда, а только в случае успешного завершения цикла.
Также стоит помнить, что значение переменной заголовка цикла elem при каждой новой итерации обновляется, поэтому после завершения цикла в ней будет храниться значение, присвоенное в ходе последней итерации.
Давайте рассмотрим еще несколько наглядных вариаций цикла for/in , чтобы увидеть, как он используется на практике (см. пример №2 ).
Пример №2. Использование цикла for (часть 2).
Как видим, инструкция цикла for в Python действительно имеет весьма простой синтаксис и с легкостью позволяет совершать обход элементов в любых итерируемых объектах, в особенности внутри упорядоченных последовательностей вроде строк или списков, в которых обход осуществляется поочередно в порядке возрастания индексов их элементов.
Цикл while
Инструкция цикла while представляет собой универсальный цикл общего назначения. Он служит для повторного выполнения кода, расположенного в его теле, до тех пор, пока условие цикла остается истинным, т.е. имеет значение True . В общем случае синтаксис цикла while в Python можно представить в следующем виде:
Работает цикл while следующим образом: каждый раз перед выполнением новой итерации, т.е. перед очередным выполнением блока инструкций в теле цикла, происходит проверка его условия и, если результат будет иметь значение True , код в теле цикла выполняется; далее интерпретатор возвращается в начало цикла и снова проверяет его условие, повторяя все процедуры заново до тех пор, пока условие цикла не вернет значение False ; в этом случае интерпретатор прерывает выполнение цикла и, пропустив блок инструкций в его теле, передает управление либо необязательному ключевому слову else , выполняя дополнительный блок инструкций, либо инструкции, следующей за циклом. При этом следует иметь в виду, что набор инструкций блока else выполняется только тогда, когда выход из цикла производится не инструкцией break (см. пример №3 ).
Пример №3. Использование цикла while (часть 1).
В нашем примере цикл совершил три итерации. На первых двух итерациях сумма элементов списка наращивалась, но не достигла допустимого предела. В результате этого цикл пошел на третий виток, где сумма элементов все-таки превысила лимит. Это привело к тому, что цикл был прерван инструкцией break , а интерпретатор начал обрабатывать выражение вызова функции print() , следующее за циклом. Если бы общая сумма всех элементов списка оказалась меньше допустимого лимита, цикл продолжил бы работу до тех пор, пока переменная счетчика не стала бы равной четырем, а условие цикла не вернуло бы False . Далее интерпретатор пропустил бы блок инструкций тела цикла и стал бы обрабатывать дополнительный набор инструкций его блока else . Попробуйте уменьшить значение элементов списка и убедитесь в этом.
Стоит заметить, что в языке Python отсутствует цикл do/while , имеющийся в других языках программирования. Однако его можно имитировать, добавив в конец тела цикла условную инструкцию одновременно с инструкцией break (см. пример №4 ).
Пример №4. Использование цикла while (часть 2).
Как видим, в данной имитации тело цикла при любом значении счетчика будет выполнено как минимум один раз, что является побочным эффектом проверки условия в конце цикла свойственного реальной конструкции do/while .
Кстати, обратите внимание, что при использовании счетчиков в наших примерах мы инициализировали их вне циклов. Это нужно для того, чтобы при каждой новой итерации их значения не сбрасывались циклом в первоначальное состояние.
Инструкции break и continue
Инструкции break и continue используются только внутри циклов и выполняют примерно те же функции, что и в других языках программирования: break прерывает объемлющий цикл и передает управление следующей за циклом инструкции, а continue прерывает только текущую итерацию и производит переход в начало цикла, т.е. в строку заголовка. При этом обе инструкции могут появляться в любом месте внутри тела цикла, но как правило, их используют во вложенных в цикл условных инструкциях if , чтобы выполнить необходимое действие в ответ на некоторое условие (см. пример №5 ).
Пример №5. Использование инструкций break и continue (часть 1).
Здесь хотелось бы обратить внимание на то, что все виды циклов в Python могут иметь другие вложенные циклы и условные инструкции, позволяя нужным образом изменять дальнейший ход выполнения программы. Но дело в том, что каждая отдельная инструкция break или continue относится только к одному ближайшему объемлющему циклу. Поэтому, например, выйти сразу из всех внешних циклов при помощи всего лишь одной инструкции break расположенной в самом глубоком вложенном цикле не получится, нужно использовать инструкцию во всех циклах текущей иерархии (см. пример №6 ).
Пример №6. Использование инструкций break и continue (часть 2).
В Python отсутствует возможность использования конструкций вида break n или continue n , где n указывало бы на количество прерываний внешних циклов. Вместо этого необходимо использовать собственные инструкции для каждого из n циклов по отдельности.
Краткие итоги параграфа
- Для обхода элементов в любых объектах, поддерживающих возможность совершения итераций, в Python предназначен цикл for/in . В ходе выполнения этого цикла интерпретатор один за другим присваивает переменной заголовка элементы итерируемого объекта и выполняет для них инструкции тела цикла.
- Для многократного повторного выполнения кода (не только обхода элементов) служит универсальный цикл общего назначения while , который выполняет блок инструкций, расположенный в его теле, до тех пор, пока условие цикла остается истинным, т.е. имеет значение True .
- При необходимости в циклах for и while разрешается использовать необязательный блок else , набор инструкций которого выполняется только после удачного завершения цикла (т.е. при отсутствии ошибки или прерывания за счет использования инструкции break ).
- При использовании счетчиков следует инициализировать их вне циклов, чтобы при каждой новой итерации их значения не сбрасывались циклом в первоначальное состояние.
- Для прерывания циклов в Python используется инструкция break , которая прерывает объемлющий цикл и передает управление следующей за циклом инструкции. Если нужно прервать только текущую итерацию, необходимо использовать инструкцию continue , которая после прерывания итерации производит переход в начало цикла, т.е. в строку заголовка. Обе инструкции могут появляться в любом месте внутри тела цикла, но как правило, их используют во вложенных в цикл условных инструкциях if , чтобы выполнить необходимое действие в ответ на некоторое условие.
- Следует помнить, что в Python разрешается использовать многоуровневые вложенные циклы, однако при этом отсутствует возможность использования конструкций вида break n или continue n , где n указывало бы на количество прерываний внешних циклов. Вместо этого необходимо использовать собственные инструкции для каждого из n циклов по отдельности.
Вопросы и задания для самоконтроля
1. Для чего в программировании используются циклы? Какие виды циклов присутствуют в арсенале языка Python ? Показать решение.
Ответ. Циклы в программировании используются для организации многократного исполнения набора инструкций. В языке Python циклы представлены конструкциями for/in и while : основным предназначением цикла for является обход элементов итерируемого объекта, а while представляет собой универсальный цикл общего назначения. Стоит заметить, что с помощью инструкции while можно сымитировать в том числе и счетный цикл for , однако программный код, как хорошо видно из наших примеров выше, получится менее компактным и может выполняться медленнее.
2. Допустимо ли в Python использование вложенных друг в друга циклов? Показать решение.
Ответ. В Python разрешается использовать как вложенные циклы, так и вложенные условные инструкции if .
3. Обязательно ли использование блока else в циклах? При каких условиях он выполняется? Показать решение.
Ответ. Блок инструкций оператора else в циклах не является обязательным, а его инструкции выполняются только после удачного завершения цикла (т.е. при отсутствии ошибки или прерывания за счет использования оператора break ).
4. В чем заключается основное отличие инструкции break от инструкции continue ? Показать решение.
Ответ. Инструкция break полностью прерывает объемлющий цикл и передает управление следующей за циклом инструкции, в то время как инструкция continue прерывает только текущую итерацию и производит переход в начало цикла, т.е. в строку его заголовка.
5. Выведите все элементы списка [10, 20, 30] на экран сперва при помощи цикла for , а затем и цикла while . Показать решение.
6. Дополнительные упражнения и задачи по теме расположены в разделе «Циклы for и while» нашего сборника задач и упражнений по языку программирования Python .
Как посчитать количество итераций в цикле питон
Функция которая возвращает количество итераций цикла
Написать функцию, которая для заданного в качестве параметра числа возвращает количество итераций.
Формула подсчета количества итераций цикла for
Доброго времени суток Помогите ответом/советом/уч. материалом Пусть, for( int i = 1; i <= 10;.
Сообщение было отмечено soberfrog как решение
Отслеживание количества запросов
Здравствуйте! Есть многопоточный сервер. Мне нужно в реальном времени видеть сколько запросов он.