Кто может объяснить смысл цикла While True в Python?
Как можно понять что значит While True: . ? Я только понял, что цикл будет в таком случае бесконечным до тех пор, пока я не пропишу команду break, но в чём смысл самого выражения While True? И есть ли выход из такого цикла без break, например если "что-то" станет False 😀
Может вопрос тупой, но спасибо тому, кто ответит 😀
![]()
Типичная ситуация для использования подобного цикла, это когда условие завершения становится известно только в середине итерации.
Например, наша программа должна считывать с консоли числа, и вычислять их произведение, до тех пор, пока не будет введен 0
Конечно можно вынести первый ввод за пределы цикла, проверку завершения перенести в заголовок цикла.
Но в таком случае программа перестает удовлетворять т.н. принципу DRY.
В python 3.8 появилась новая конструкция, которая позволит избавиться от while True в подобных случаях
Но идеальным решением это тоже не назовешь, да и в обиход оно войдет только через год-два, когда большинство систем будет использовать 3.8.
Кроме того, не стоит забывать о том, что некоторые циклы могут быть безусловно бесконечными, и в таких случаях без while True не обойтись
![]()
Это означает что цикл является постоянно истинной. То есть пока правда==правда выполнять. Можно без брейка, но тогда вместо True надо будет использовать булевую переменную которая будет равна истине. Например:
(Отвечаю с телефона, сорян)
![]()
Гениально ответил человек по ссылке: это то же самое, что сказать While (6>5), что по сути While True и есть. Бесконечный цикл, ибо правда всегда правда 😀 Там каждая строчка ответа очень интересная и понятная поэтому прикреплю его ответ сюда, чтобы прочитали потом те, кому интересно:
Everything inside the () of the while statement is going to be evaluated as a boolean. Meaning it gets converted into either true or false.
Consider in the statement while(6 > 5)
It first evaluates the expression 6 > 5 which is true so is the same as saying while(true)
Anything that is not FALSE, 0, an emptry string "", null, or undefined is likely to be evaluated to true.
When I first started programming I used to do things like if(foo == true), I didn’t realise that was virtually the same thing as if(foo).
Цикл while в Python
Из этого материала вы узнаете, что такое циклы while, как они могут становиться бесконечными, как использовать инструкцию else в цикле while и как прерывать исполнение цикла.
Управление потоком инструкций: цикл While в Python
Как и другие языки программирования Python включает несколько инструкций для управления потоком. Одна из таких — if else. Еще одна — циклы. Циклы используются в тех случаях, когда нужно повторить блок кода определенное количество раз.
Что такое цикл while в Python?
Цикл while используется в Python для неоднократного исполнения определенной инструкции до тех пор, пока заданное условие остается истинным. Этот цикл позволяет программе перебирать блок кода.
Сначала программа оценивает условие цикла while. Если оно истинное, начинается цикл, и тело while исполняется. Тело будет исполняться до тех пор, пока условие остается истинным. Если оно становится ложным, программа выходит из цикла и прекращает исполнение тела.
Рассмотрим пример, чтобы лучше понять.
Бесконечный цикл while в Python
Бесконечный цикл while — это цикл, в котором условие никогда не становится ложным. Это значит, что тело исполняется снова и снова, а цикл никогда не заканчивается.
Следующий пример — бесконечный цикл:
Если запустить этот код, то программа войдет в бесконечный цикл и будет снова и снова спрашивать имена. Цикл не остановится до тех пор, пока не нажать Ctrl + C .
Else в цикле while
В Python с циклами while также можно использовать инструкцию else . В этом случае блок в else исполняется, когда условие цикла становится ложным.
Этот пример демонстрирует принцип работы else в цикле while.
Программа исполняет код цикла while до тех, пока условие истинно, то есть пока значение a меньше 5. Поскольку начальное значение a равно 1, а с каждым циклом оно увеличивается на 1, условие станет ложным, когда программа доберется до четвертой итерации — в этот момент значение a изменится с 4 до 5. Программа проверит условие еще раз, убедится, что оно ложно и исполнит блок else , отобразив «условие неверно».
Прерывания цикла while в Python
В Python есть два ключевых слова, с помощью которых можно преждевременно остановить итерацию цикла.
Цикл while в Python
Цикл while в Python используется для повторения блока кода, пока выражение (условие) истинно, т.е. равно True .
Обычно этот цикл используют, когда заранее неизвестно, сколько раз нужно повторить блок кода.
Синтаксис цикла
Сначала цикл while проверяет выражение на истинность. Тело цикла начнет выполняться только в том случае, если выражение = True . После первой итерации цикла выражение снова проверяется на истинность. Этот процесс будет продолжаться до тех пор, пока выражение не станет равно False .
В Python тело цикла while обозначается отступами. Тело цикла начинается с отступа, а заканчивается первой строкой без отступа.
Помните, что Python интерпретирует ненулевые значения как True . None и 0 интерпретируются как False .
Блок-схема цикла
Пример использования цикла
Вывод:
В приведенной выше программе выражение будет равно True до тех пор, пока счетчик i меньше или равен n . В нашем примере n = 10.
Главное не забывать увеличивать значение счетчика в теле цикла while, иначе получится бесконечный цикл. выражение всегда будет истинным, поскольку i не будет увеличиваться, следовательно, цикл никогда не остановится.
Цикл while с блоком else
Так же, как и с циклами for, с циклами while можно использовать дополнительный блок else .
Блок else начнет выполняться, когда условие цикла while станет равно False .
Цикл while можно принудительно завершить с помощью инструкции break. В таких случаях блок else игнорируется. Иначе говоря, блок else выполняется только в том случае, если внутри тела while не использовался оператор break, а условие цикла while ложно.
Вот пример, который иллюстрирует это.
Вывод:
Мы использовали переменную-счетчик counter , чтобы напечатать сообщение «Внутри цикла while» ровно 3 раза.
На четвертой итерации, т. е. когда counter = 4 условие цикла while counter < 3 становится ложным, т. е. False . Тогда-то и выполняется блок else .