Бесконечный цикл while: Циклы while и for

Цикл 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, то произойдёт выход из цикла из-за того, что значение в скобках

while( 4 <= 3 ) является ложью.

Обратите внимание, что в циклах принято обозначать переменные, которые изменяются с каждой итерацией, буквами: 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
печать (ул (еженедельная зарплата))

Результат будет
Праздничный день!!
10000 

Else с циклом 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 в Нью-Йорке прямо сейчас!

Прерывания цикла в Python

Python предлагает следующие два ключевых слова, которые мы можем использовать для преждевременного завершения итерации цикла.

Операторы Break в цикле While

  1. Break: Ключевое слово break прерывает цикл и передает управление в конец цикла.
 Пример:
а = 1
в то время как <5:
а += 1
если а == 3:
перерыв
печать (а)
Выход:
2 

Операторы Continue в цикле While

  1. Continue: Ключевое слово continue завершает текущую итерацию и передает управление в начало цикла, а условие цикла оценивается снова. Если условие истинно, то происходит следующая итерация.

Пример:

 а = 1
в то время как <5:
а += 1
если а == 3:
продолжать
печать (а)

Выход:
2
4
5 

Отправляйтесь на самый профессиональный онлайн-курс Python в Торонто и сделайте блестящую карьеру прямо сейчас!

Программа числового шаблона на Python с использованием цикла While
 n = 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('Последнее имя не введено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *