что значит while true в питоне
Цикл while в Python
Из этого материала вы узнаете, что такое циклы while, как они могут становиться бесконечными, как использовать инструкцию else в цикле while и как прерывать исполнение цикла.
Управление потоком инструкций: цикл While в Python
Как и другие языки программирования Python включает несколько инструкций для управления потоком. Одна из таких — if else. Еще одна — циклы. Циклы используются в тех случаях, когда нужно повторить блок кода определенное количество раз.
Что такое цикл while в Python?
Цикл while используется в Python для неоднократного исполнения определенной инструкции до тех пор, пока заданное условие остается истинным. Этот цикл позволяет программе перебирать блок кода.
Сначала программа оценивает условие цикла while. Если оно истинное, начинается цикл, и тело while исполняется. Тело будет исполняться до тех пор, пока условие остается истинным. Если оно становится ложным, программа выходит из цикла и прекращает исполнение тела.
Рассмотрим пример, чтобы лучше понять.
Бесконечный цикл while в Python
Бесконечный цикл while — это цикл, в котором условие никогда не становится ложным. Это значит, что тело исполняется снова и снова, а цикл никогда не заканчивается.
Следующий пример — бесконечный цикл:
Else в цикле while
Этот пример демонстрирует принцип работы else в цикле while.
Прерывания цикла while в Python
В Python есть два ключевых слова, с помощью которых можно преждевременно остановить итерацию цикла.
Подробный разбор цикла while в Python
Цикл — это некий набор инструкций. Он выполняется до тех пор, пока его условие истинно. Давайте разберемся, как работает цикл while в Python.
Что такое цикл?
Циклы — фундаментальное понятие в программировании. Если вы новичок, то обязаны в них разобраться. Циклы могут помочь выполнять набор инструкций до тех пор, пока заданное условие истинно.
В Python есть два основных вида циклов:
Они очень похожи друг на друга. Но если вы хотите писать по-настоящему быстрый код, вам нужно научиться грамотно выбирать нужный цикл.
Цикл while
Суть работы цикла while очень проста. Работает он так: ваши инструкции выполняются, пока условие истинно.
Прежде чем мы возьмемся за написание кода, взгляните на блок-схему. Работает цикл следующим образом:
А теперь напишем небольшую программу. Это простой цикл, выводящий в консоль числа от 1 до 10.
Как вы можете заметить, тело цикла выполняется, пока x меньше или равно 10. Если вы присвоите x значение 20, то цикл не запустится вообще.
Вывод будет следующим:
Цикл do-while
Цикл while может не запуститься вообще, если условие не будет истинным изначально. Do-while — напротив. Тут сначала выполняется тело цикла, и только потом происходит проверка условия.
Цикл do-while реализован в большинстве языков программирования, но в Python такого оператора нет. Тем не менее, его можно с легкостью имитировать — например, с помощью функций.
Оператор else
Однострочное объявление while
Если внутри цикла while у вас только одна строка — можно воспользоваться однострочным вариантом. Делается это так:
Будьте осторожны — этот цикл бесконечный.
Бесконечные циклы
Всегда будьте внимательны, когда создаете цикл. Небольшая ошибка — и у вас бесконечный цикл, что в конечном итоге приведет к сбою в работе программы.
Управление циклом
С циклом разобрались. Наконец мы можем перейти к операторам его управления.
Когда вы начнете работать в реальных проектах, вы будете сталкиваться с разными ситуациями. Например, когда нужно добавить условие, выполнение которого завершит цикл или пропустит итерацию.
Break
Выполнение цикла прекращается, когда x становится равно 5 — даже если x больше или равно 1.
Continue
В этом случае вам нужно использовать ключевое слово continue :
Как видите, цикл выводит в консоль все числа от 1 до 10 кроме 5. Когда x становится равен 5, оставшаяся часть команд не выполняется, а начинается следующая итерация цикла.
Кто может объяснить смысл цикла While True в Python?
Может вопрос тупой, но спасибо тому, кто ответит 😀
3 ответа 3
Типичная ситуация для использования подобного цикла, это когда условие завершения становится известно только в середине итерации.
Например, наша программа должна считывать с консоли числа, и вычислять их произведение, до тех пор, пока не будет введен 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).
So when you say while(true) its like are saying while(true == true)
So to answer you question: While TRUE is True.
Python циклы
Важной частью структурного программированию помимо операторов условий считаются циклы. Они помогают автоматизировать последовательные задачи в программе, а именно: повторить выполнение определенных участков кода. Такая необходимость возникает достаточно часто, когда нужно сделать что-нибудь много раз, тем самым, циклы упрощают эту задачу.
Понятие циклов
В нашей жизни мы достаточно часто сталкиваемся с цикличными задачами, к ним можно отнести любые списки, будь-то: продукты, задачи на день, запланированные экзамены. И действительно, когда мы приходим в магазин, то покупаем все, что есть в нашем списке, не останавливаясь, пока не сделаем этого.
В программировании циклы позволяют повторять некоторое действие в зависимости от соблюдения заданного условия. Таким образом организуется исполнение многократной последовательности инструкций.
Есть еще несколько важных понятий, которые нужно знать:
Python позволяет также создавать вложенные циклы. Так, сначала программа запустит внешний и в первой его итерации перейдет во вложенный. Затем она снова вернется к началу внешнего и снова вызовет внутренний. Это будет происходить до тех пор, пока последовательность не завершится или не прервется. Такие циклы полезны в том случае, если нужно перебрать определенное количество элементов в списке.
В Python есть только два цикла: for и while. Первый используется по большей мере в тех случаях, когда нужно написать многоуровневую программу с множеством условий.
Цикл «for»
Цикл for в Python 3 выполняет написанный код повторно согласно введенной переменной или счетчику. Он используется только тогда, когда необходимо совершить перебор элементов заранее известное число раз. Что это значит? У нас имеется список, сначала из него берется первый элемент, потом – второй и так далее, но с каждым из них совершается действие, которое указано в теле for. Примерно это выглядит так:
For может содержать данные разных типов: цифры, слова и пр. Рассмотрим пример:
На экране после запуска появится такая запись:
Для упрощения часто используется функция range(), или диапазон. В циклах она указывает на необходимое количество повторов последовательности, уточняя, какие именно элементы из списка for, нам необходимы в данный момент. В скобках может быть указано от одного до трех чисел:
Рассмотрим пример. Теоретически вы можете записать так:
Но это слишком затратно, особенно если чисел слишком много, поэтому лучше сделать так, используя указанный выше range():
И в первом, и во втором случае на экране появится такая последовательность:
Цикл «while»
While с английского языка переводится, как «до тех пор, как». Это достаточно универсальный цикл, он немного похож на условие if, но его код выполняется не один раз. Его условие записывается до тела цикла. После того, как оно выполнено первый раз, программа возвращается к заголовку и снова повторяет все действия. Этот процесс заканчивается тогда, когда условие цикла больше не может быть соблюдено, иными словами перестает быть истинным. Тем, что заранее неизвестно количество проверок, он отличается от предыдущего цикла for. Кстати, еще его называют циклом с предусловием.
Запись цикла while в Python выглядит так:
Приведем пример использования этого цикла:
Здесь переменной присваивается значение 0, после чего начинается цикл, в котором проверяется условие, чтобы число было меньше 6. В теле цикла также содержится две инструкции: первая выводит само число на экран, а вторая увеличивает его значение на два. Цикл, таким образом, выполняется, пока условие продолжает быть истинным. На экране перед вами появится следующая последовательность чисел:
Обычно в ней есть смысл, только если указана инструкция break, но программа работает и без последней. Посмотрим на код:
Переменная – 3, задается условие, что пока она меньше 7, нужно выводить ее и выражение «меньше 7», затем прибавлять к ней 1. В тех случаях, когда она уже становится равной 7, то в ход пойдет условие, указанное в else, и на экране появится, что переменная не меньше 7. В результате выполнения этого кода мы увидим:
Инструкции break и continue
Оператор break используется для выхода из цикла Python — прерывает его досрочно. Так, если во время выполнения кода, программа натыкается на break, то она сразу прекращает цикл и выходит из него, минуя else. Это необходимо, например, если при выполнении инструкций была обнаружена ошибка, и дальнейшая работа бессмысленна. Посмотрим на пример его применения:
Его реализация будет выглядеть так:
После этого выполнение программы будет прервано.
Другая инструкция, которая может менять цикл, — это continue. Если она указана внутри кода, то все оставшиеся инструкции до конца цикла пропускаются и начинается следующая итерация.
В целом, не следует слишком увлекаться использованием этих инструкций.
Цикл с постусловием
Во многих других языках программирования существуют циклы с постусловием, обычно они описываются так:
Цикл while может стать циклом с постусловием, тогда его примерный вид будет таким:
Так получается, что сначала дается тело цикла, а потом задается условие.
Бесконечные циклы
Бесконечными циклами в программировании называются те, в которых условие выхода их них не выполняется.
Цикл while становится бесконечным, когда его условие не может быть ложным. Например, при помощи него можно реализовать программу «Часы», которая бесконечно отображает время.
Примером реализации в Python бесконечного цикла будет такой код:
Очевидно, что заданная переменная всегда останется цифрой 3, поскольку никак не задано ее увеличение, поэтому на экране просто будет появляться слово «Привет».
Зачастую цикл не должен быть бесконечным, поскольку это причина неустойчивой работы программы. Для того чтобы выйти из него, нужно нажать комбинацию клавиш: CTRL+C. При этом программы, из которых нет выхода, также существуют. К ним относятся: операционные системы, прошивки микроконтроллеров.
Вложенные циклы
Рассмотрим вложенные циклы в Python. Для реализации можно использовать как вложенные for, так и while.
Про них мы уже писали выше. Здесь же хочется привести пару примеров использования. Они очень часто используются при обработке двухмерных списков.
Вот пример создания двумерного списка и вывода его на экран с помощью print.
Нельзя с помощью одного break в Python выйти сразу из двух циклов. В этом случае нужно во внешнем цикле создать условие следующим образом.
Здесь приведен пример использования в Python цикла в цикле. Оба бесконечны. Все будет выполняться бесконечно, до тех пор, пока функция doSomething не вернет True. После этого поочередно сработают break во внешнем и во внутреннем циклах.
Заключение
Как правило, команды в коде выполняются последовательно: одна за другой. Именно поэтому, когда есть необходимость выполнить тело кода несколько раз, используются циклы. Циклы для Python очень значимы, именно они делают повторение простым, логичным и очень понятным.
Самоучитель
Цикл while для начинающих
Цикл while — это конструкция, позволяющая выполнять блок кода до тех, пор пока условие в этой конструкции продолжает быть истиной. Отступы тут будут работать точно так же, как и при использовании оператора if — все, что сдвинуто на четыре пробела относительно ключевого слова while будет считаться телом цикла.
С английского языка while так и переводится — до тех пор, пока.
Для начинающих особенно важно понять все детали работы цикла, поэтому разберем программу, последовательно выводящую цифры от 1 до 3, построчно:
Задаем начальное значение переменной i, которая является так называемой переменной-счетчиком;
Объявляем условие — пока значение счетчика меньше или равно трем, код ниже будет выполняться. Конец условия обязательно обозначаем двоеточием;
Выводим значение переменной i (единица, в данном случае). Обратите внимание, что Python определяет начало цикла, видя отступ в четыре пробела;
Увеличиваем значение переменной i на единицу (которое становится равное двум). Два меньше трех? Значит Python выполнит еще одну итерацию цикла, и так необходимое количество раз, пока условие не перестанет быть истиной (значение переменной i будет меньше либо равно трем).
Нашу программу можно переписать и немного по‑другому, используя оператор break
В принципе, все повторения и шаги цикла аналогичны первому варианту. Отличие лишь в том, что для завершения цикла мы используем оператор break, который завершает выполнение цикла. То есть, если переменная-счетчик станет больше либо равна 3, цикл завершится. Оператор break полезен, если условие в while написать трудно, оно слишком громоздкое, либо перед завершением цикла нужна выполнить какие‑либо дополнительные действия