Цикл while и for в PHP
В языке программирования PHP существует несколько способов сделать цикл. Одни из самых популярных — это while и for. Продемонстрируем их использование на практике.
Цикл while
Цикл while( условие ) выполняется только в том случае, если условие является истиной (как будто при проверке if( условие )). Очевидно, что при таком способе работы цикла его условие должно изменяться с каждой итерацией, иначе это будет бесконечный цикл. Продемонстрируем использование цикла на практике:
<?php $i = 1; while( $i <= 3 ){ echo $i; echo '<br>'; $i++; } ?>
При выполнении такого кода на экране мы увидим:
1 2 3
Как только $i станет равной 4, то произойдёт выход из цикла из-за того, что значение в скобках
Обратите внимание, что в циклах принято обозначать переменные, которые изменяются с каждой итерацией, буквами: i, j, k.
Если бы в примере не было строчки $i++;, то цикл выполнялся бы бесконечно, потому что $i никогда бы не стала больше 3.
Цикл for
Теперь разберём более сложный, но популярный цикл for( начальные параметры; условие завершения цикла; действие на каждой итерации ). Этот цикл чаще встречается в проектах, чем while. Он имеет не одно, а сразу три условия. Попробуем переписать предыдущий пример, но используем цикл for:
<?php for( $i = 1; $i <= 3; $i++ ){ echo $i; echo '<br>'; } ?>
Такой цикл занимает меньше строк, чем цикл с while, потому что включает в скобки for( ) задание начального значения переменной и действия, которое необходимо с ней сделать при новой итерации цикла. Результат выполнения такого цикла будет аналогичен результату из предыдущего примера. При выполнении такого кода на экране мы увидим:
1 2 3
В скобках цикла for( ) может стоять несколько переменных, несколько параметров и несколько действий, которые надо сделать с несколькими переменными. Такая теоретическая возможность есть, но на практике она никогда не встречается. Потому что чем легче — тем лучше. Но для образовательных целей приведём пример:
<?php for( $i = 1, $j = 2; $i <= 3, $j <= 4; $i++, $j++ ){ echo $i . ' - ' . $j . '<br>'; } ?>
Если хотя бы одно из условий $i <= 3, $j <= 4 не будет выполняться, то цикл закончится.
Была ли эта статья полезна? Есть вопрос?
Закажите недорогой хостинг Заказать
всего от 290 руб
Цикл while в Python — Учебник по Python
11. 10.20202020-10-11T21:45:14+03:002021-01-18T10:07:22+03:00 Python Комментариев нет
Циклы — одна из фундаментальных концепций языков программирования. Циклы удобны, когда вы хотите повторить определенный блок кода несколько раз, пока не будет выполнено заданное условие.
В Python есть две основные конструкции цикла: цикл for
и while
.
В этом руководстве рассматриваются основы циклов while
в Python. Мы также покажем вам, как использовать предложение else
break
и continue
.Содержание
Python
while
LoopВ while
цикл выполняет свои операторы неизвестное число раз до тех пор , как данное условие имеет значение true
.
Python во while
цикла имеет следующий вид:
while EXPRESSION: STATEMENT(S)
Оператор while
начинается с ключевого слова while
, за которым следует условное выражение.
EXPRESSION
оценивается перед выполнением операторов. Если условие true
, выполняется STATEMENT(S)
. В противном случае, если условие оценивается как false
, цикл завершается, и управление программой передается следующей инструкции.
Блок STATEMENT(S)
начинается с отступа и заканчивается первой строкой без отступа. Большинство людей предпочитают использовать отступы с четырьмя или двумя пробелами. Официальное руководство по стилю для кода Python рекомендует использовать 4 пробела для каждого уровня отступа и избегать смешивания использования табуляции и пробелов для отступа.
Давайте посмотрим на следующий пример кода, который увеличивает и печатает текущее значение переменной i
если оно меньше пяти:
i=0 while i < 5: i += 1 print('number:', i)
Цикл вторника повторяется, пока i
меньше или равно пяти. Он выдаст следующий результат:
number: 1 number: 2 number: 3 number: 4 number: 5
Python поддерживает стандартные операции сравнения:
a == b
— Истинно, еслиa
иb
равны.a != b
— Верно, еслиa
иb
не равны.a > b
— Истинно, еслиa
большеb
.a >= b
— Истинно, еслиa
равно или большеb
.a < b
— Истинно, еслиa
меньшеb
.a <= b
— Истинно, еслиa
равно или меньшеb
.
Чтобы отрицать условное выражение, используйте логический оператор not
:
i=0 while not i >= 5: i += 1 print('number:', i)
break
и continue
утвержденияbreak
и continue
заявления позволяют контролировать while
выполнение цикла.
Оператор break
завершает текущий цикл и передает управление программой оператору, который следует за завершенным циклом. Наиболее распространенная ситуация — использовать break
для завершения цикла при выполнении определенного условия.
В следующем примере выполнение цикла прерывается, когда текущий повторяемый элемент равен 2
.
i=0 while i < 5: i += 1 if i == 2: break print('number:', i)
Number: 1
Оператор continue
завершает текущую итерацию цикла и передает управление программой следующей итерации цикла.
В следующем примере, как только текущий повторяемый элемент равен 2
оператор continue
заставит выполнение вернуться к началу цикла и продолжить следующую итерацию.
i=0 while i < 5: i += 1 if i == 2: continue print('number:', i)
number: 1 number: 3 number: 4 number: 5
else
пунктВ отличие от других языков, в Python, то в while
петля имеет опциональный else
условие:
while EXPRESSION: STATEMENT(S) else: STATEMENT(S)
Операторы внутри предложения else
выполняются только тогда, когда выражение EXPRESSION
значение false
. Если возникает исключение или цикл завершается оператором break
, оно не выполняется.
Вот пример:
i=0 while i < 5: i += 1 print('number:', i) else: print('Loop completed.')
number: 1 number: 2 number: 3 number: 4 number: 5 Loop completed.
Теперь Лью посмотрим , что происходит , когда вы break
из петли:
i=0 while i < 5: i += 1 if i == 2: break print('number:', i) else: print('Loop completed.')
Оператор внутри предложения else
не выполняется, потому что выражение не имеет значения false
:
Number: 1
else
пункт с в while
цикла не часто используется. Одна из распространенных ситуаций — это когда вы ожидаете выхода из цикла, и если цикл продолжает выполняться до тех пор, пока условие не станет false
, вы можете выполнить некоторый оператор или функцию.
Бесконечный цикл
while
Бесконечный цикл — это цикл, который повторяется бесконечно и никогда не завершается, пока программа не завершится. Если условие всегда истинно, вы получаете бесконечный цикл.
Бесконечные циклы обычно используются для того, чтобы программа ожидала возникновения какого-либо внешнего события. Обычно в Python бесконечный цикл создается с помощью while True:
вместо True
вы также можете использовать любое другое выражение, которое всегда возвращает true
.
Вот пример бесконечного в while
цикл , который будет продолжать предложит ввести «Да»:
while True: i = input('Please enter 'Yes': ') if i.strip() == 'Yes': break
В while
цикл выше будет работать , пока вы не введете «Да»:
Please enter 'Yes': 3 Please enter 'Yes': l Please enter 'Yes': lin Please enter 'Yes': No Please enter 'Yes': Yes
Другой способ прервать бесконечный цикл — нажать CTRL+C
При написании бесконечных циклов убедитесь, что вы используете оператор break
для выхода из цикла в какой-то момент.
Выводы
В while
цикл многократно выполняет свои заявления до тех пор , данное условие имеет значение true
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Цикл while в Python — Python While Loop
Операторы управления потоком: Python While LoopКак обсуждалось в предыдущем модуле, мы знаем, что Python, как и другие популярных языка программирования , состоит из некоторых операторов управления потоком. Одним из операторов потока управления, который мы уже изучили в предыдущем модуле, является оператор Python if else . Еще одним оператором потока управления являются циклы. Циклы используются, когда мы хотим повторить блок кода несколько раз. В этом модуле мы узнаем о цикле while в Python.
Ниже приведен список всех тем, которые мы рассмотрим в этом модуле.
- Что такое цикл while в Python?
- Бесконечный цикл while в Python
- Цикл Do While в Python
- Хотя верно в Python
- Еще с циклом While в Python
- Прерывания цикла в Python
- Программа числового шаблона на Python с использованием цикла While
- Факториальная программа на Python с использованием цикла While
Итак, без дальнейших проволочек, приступим.
Что такое цикл while в Python?Операторы цикла While в Python используются для многократного выполнения определенного оператора до тех пор, пока условие, указанное в операторе цикла while, остается истинным. Циклы while позволяют программе перебирать блок кода.
Синтаксис цикла While в Python:
while test_expression: тело цикла while
Следующая блок-схема объясняет работу цикла while в Python.
Сначала программа оценивает условие цикла while. Если это правда, то программа входит в цикл и выполняет тело цикла while. Он продолжает выполнять тело цикла while, пока условие истинно. Когда оно ложно, программа выходит из цикла и перестает повторять тело цикла while.
Давайте посмотрим на следующий пример, чтобы лучше понять его.
а = 1 пока (а<10): print(" цикл введен", a, "times") а = а+1 print("Здесь цикл заканчивается") Выход: петля введена 1 раз петля введена 2 раза петля введена 3 раза петля введена 4 раза петля введена 5 раз петля введена 6 раз петля введена 7 раз петля введена 8 раз введена петля 9раз Цикл заканчивается здесь
Заинтересованы в изучении Python? Запишитесь на наш курс Python в Лондоне прямо сейчас!
Карьерный переход
Бесконечный цикл while в PythonБесконечный цикл while относится к циклу while, в котором условие while никогда не становится ложным. Когда условие никогда не становится ложным, программа входит в цикл и продолжает повторять один и тот же блок кода снова и снова, и цикл никогда не заканчивается.
В следующем примере показан бесконечный цикл:
a = 1 в то время как а == 1: b = ввод («как тебя зовут?») print("Привет", b, ", Добро пожаловать в Intellipaat!")
Если мы запустим приведенный выше блок кода, он выполнит бесконечный цикл, который снова и снова будет запрашивать наши имена. Цикл не прервется, пока мы не нажмем «Ctrl+C».
Вывод:
как тебя зовут? Аканкша Рана #пользовательский ввод Привет, Аканкша Рана, добро пожаловать в Intellipaat! как тебя зовут? Амрит #пользовательский ввод Привет Амрит, Добро пожаловать в Intellipaat! как тебя зовут? Шубхам #пользовательский ввод Привет Шубхам, Добро пожаловать в Intellipaat! как тебя зовут? Traceback (последний последний вызов): #Остановка цикла нажатием CTRL+C Файл «», строка 2, в КлавиатураПрерываниеЦикл Do-While в Python
В Python нет цикла do-while. Но мы можем создать программу для реализации do-while. Он используется для проверки условий после выполнения инструкции. Это похоже на цикл while, но он выполняется хотя бы один раз.
я = 1 пока верно: печать (я) я = я + 1 если (я > 5): перерыв Результат будет 1 2 3 4 5
Теперь взгляните на наши Обучение Python для повышения вашей карьеры до новых высот. Кроме того, ознакомьтесь с нашими бесплатными вопросами для интервью по Python .
Хотя true в PythonСуществует концепция объявления условия истинным без оценки какого-либо выражения. Это делается для того, чтобы указать, что цикл должен выполняться до тех пор, пока он не прервется. Затем мы записываем операторы break внутри блока кода.
Параметр while true в python реализовать просто. Вместо объявления любых Переменная Python , применяя условия, а затем увеличивая их, напишите true внутри условных скобок.
еженедельная зарплата = 0 день недели = 1 week = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"] пока (правда): если(неделя[деньнедели] == "воскресенье"): печать("Праздник!!") перерыв недельная зарплата += 2000 день недели += 1 печать (ул (еженедельная зарплата)) Результат будет Праздничный день!! 10000Else с циклом While в Python
В Python мы также можем использовать оператор else с циклами. Когда оператор else используется с циклом while, он выполняется только в том случае, если условие становится ложным.
а = 1 в то время как <5: напечатать("условие истинно") а=а+1 еще: print("условие теперь ложно")
В этом примере показано, как оператор else работает с циклом while.
Выход:
условие верно условие верно условие верно условие верно условие теперь ложно
В приведенном выше примере программа продолжает выполнять тело цикла while до тех пор, пока условие не станет истинным, что означает, что значение и меньше 5. Поскольку начальное значение и равно 1 и каждый раз, когда программа входит в цикл, значение a увеличивается на 1, условие становится ложным после того, как программа входит в цикл в четвертый раз, когда значение a увеличивается с 4 до 5. Когда программа проверяет условие в пятый раз, она выполняет его как ложное, переходит к блоку else и выполняет тело else, отображая «условие теперь ложно».
Посмотрите это видео в разделе «Учебное пособие по Python»:Начните свою карьеру в Python с идеального курса Python в Нью-Йорке прямо сейчас!
Прерывания цикла в PythonPython предлагает следующие два ключевых слова, которые мы можем использовать для преждевременного завершения итерации цикла.
Операторы Break в цикле While
- Break: Ключевое слово break прерывает цикл и передает управление в конец цикла.
Пример: а = 1 в то время как <5: а += 1 если а == 3: перерыв печать (а) Выход: 2
Операторы Continue в цикле While
- Continue: Ключевое слово continue завершает текущую итерацию и передает управление в начало цикла, а условие цикла оценивается снова. Если условие истинно, то происходит следующая итерация.
Пример:
а = 1 в то время как <5: а += 1 если а == 3: продолжать печать (а) Выход: 2 4 5
Отправляйтесь на самый профессиональный онлайн-курс Python в Торонто и сделайте блестящую карьеру прямо сейчас!
Программа числового шаблона на Python с использованием цикла Whilen = int(input("Введите количество строк:")) я = 1 пока я <= п: дж = 1 в то время как j <= я: напечатать("*", конец = "") j += 1 Распечатать() я += 1 Результат будет Введите количество строк: 4 * ** *** ****Факториальная программа на Python с использованием цикла While
num = int(input("Введите число: ")) факт = 1 я = 1 пока я <= число: факт = факт * я я = я + 1 print("Факториал ", num," is ", fac) Результат будет Введите число: 4 Факториал 4 равен 24
На этом мы подошли к концу этого модуля в учебнике по Python. Вы также можете просмотреть этот учебник Python Data Science, чтобы узнать, почему Python является наиболее предпочтительным языком для Data Science. Кроме того, ознакомьтесь с нашими бесплатными вопросами для интервью по Python.
Получите 100% повышение!
Осваивайте самые востребованные навыки прямо сейчас!
Расписание курсов
Проблема с бесконечным циклом в Python
спросил
Изменено 2 года, 9 месяцев назад
Просмотрено 1к раз
Я пытаюсь создать сценарий, который запрашивает ввод данных пользователем в Python, предполагается, что он выдаст ошибку с ответом «Пожалуйста, введите имя», а затем вернет пользователя обратно к исходной подсказке ввода вопроса.
Это не работает, вместо этого после запроса имени и фамилии, если имя не указано для обоих, я попадаю в бесконечный цикл с первой ошибкой.
# Пользовательский ввод для имени first_name = input('Введите ПЕРВОЕ имя здесь: ') # Пользовательский ввод фамилии last_name = input('Введите здесь ПОСЛЕДНЕЕ имя: ') определение print_name(): # сохранить пользовательский ввод в отдельной переменной fname = первое_имя lname= фамилия_имя пока верно: # выдать ошибку, если пользователь не вводит имя если len(fname) == 0: # сообщение об ошибке print('Первое имя не введено...') # возвращаемся к подсказке, запрашивающей имя продолжать еще: # если указано имя, перейти к запросу фамилии # разорвать цикл перерыв # зациклиться на запросе у пользователя фамилии пока верно: # выдать ошибку, если пользователь не вводит фамилию если len(lname) == 0: print('Последнее имя не введено...') # возвращаемся к подсказке, запрашивающей фамилию продолжать еще: # если дана фамилия, переходим к выполнению команды печати # разорвать цикл перерыв вернуть имя, имя print(f'ваше имя {fname} {lname}') print_name()
Пожалуйста, помогите мне понять, что здесь происходит? Он должен вернуться к запросу имени (или фамилии) только тогда, когда ничего не указано, в противном случае он должен вывести имя пользователя на консоль. оба имени также должны быть указаны, если имя не указано, то id ожидает ошибку в первом цикле while, как и в случае, если фамилия не указана.
Есть ли лучший способ сделать это? использование 2 циклов while кажется неправильным?
- питон
- питон-3.x
- цикл while
- бесконечный цикл
3
Не повторяйся. Если вы копируете и вставляете часть кода, остановитесь и подумайте. Это должна быть либо функция, либо цикл.
по определению wait_for_input (приглашение): данные = "" пока данные == "": данные = ввод (приглашение). полоса () возвращаемые данные def print_name(fname, lname): print(f'ваше имя {fname} {lname}') first_name = wait_for_input('Введите ПЕРВОЕ имя:') last_name = wait_for_input('Введите ПОСЛЕДНЕЕ имя:') print_name(first_name, last_name)
Также не используйте комментарии для повторения того, что говорит код.
1
Проблема с вашими бесконечными циклами, вы можете упростить свою функцию, например:
def print_name(): имя_имя = "" фамилия = "" # Пользовательский ввод для имени в то время как имя_имя == "": first_name = input('Введите ПЕРВОЕ имя здесь: ') # Пользовательский ввод фамилии в то время как last_name == "": last_name = input('Введите здесь ПОСЛЕДНЕЕ имя: ') print(f'ваше имя {first_name} {last_name}')
У меня сложилось впечатление, что вы новичок в этом:
Циклы while обычно выглядят следующим образом:
while <условие> . .....
Это означает, что в большинстве случаев при каждом выполнении цикла условие пересчитывается и снова проверяется while
.
В вашем случае это будет выглядеть примерно так:
while (len(fname) == 0)<получить fname снова>
Дело, которое вы здесь написали ( while true
) также существует и используется регулярно, но в совсем других случаях, например, в многопоточных программах, основанных на событиях:
while true <получить_событие>
Это означает, что часть программы (так называемый поток) ожидает перехвата события (например, нажатия кнопки), после чего что-то происходит. Однако это в основном делается в многопоточных приложениях, что означает, что «основная» программа что-то делает, а подпрограмма обрабатывает поступающие события.0011
1
Я не совсем понимаю, зачем вам столько циклов. Что-то вроде этого должно делать:
def print_name(): fname = input('Введите ПЕРВОЕ имя здесь: ') если len(fname) == 0: поднять Exception('Первое имя не введено. ..') lname= input('Введите ПОСЛЕДНЕЕ имя здесь: ') если len(lname) == 0: поднять Exception('Последнее имя не введено...') print(f"ваше имя {fname} {lname}")
И если все, что вам нужно, это повторить этот цикл, все, что вам нужно сделать, это вложить вашу функцию print_name() в цикл.
РЕДАКТИРОВАТЬ: Теперь, когда я увидел другие ответы, я считаю, что ответ @Tomalak лучше, не получил того, что вы действительно хотели.
3
Попробуйте этот код:
def print_name(): # сохранить пользовательский ввод в отдельной переменной first_name = input('Введите ПЕРВОЕ имя здесь: ') fname = первое_имя пока верно: fname = первое_имя # выдать ошибку, если пользователь не вводит имя если len(fname) == 0: # сообщение об ошибке print('Первое имя не введено...') first_name = input('Введите ПЕРВОЕ имя здесь: ') # возвращаемся к подсказке, запрашивающей имя продолжать еще: # если указано имя, перейти к запросу фамилии # разорвать цикл перерыв # зациклиться на запросе у пользователя фамилии пока верно: last_name = input('Введите здесь ПОСЛЕДНЕЕ имя: ') lname= фамилия_имя # выдать ошибку, если пользователь не вводит фамилию если len(lname) == 0: print('Последнее имя не введено.