Цикл while используются для повторения фрагмента кода. В качестве примера можно представить программу, которая запрашивает ввод от пользователя, и каждый раз, когда он это делает, программа исполняет один и тот же фрагмент кода.

Ниже приведен цикл while с переменной, который запрограммирован посчитать от 1 до 5; после этого цикл останавливается.

i = 1
while i <=5:
print(i)
i = i + 1

print(“Finished!”)

При каждом повторении значение переменной i возрастает на 1, пока не достигнет значения 5. Таким образом, функция print будет вызвана 5 раз.

Код в теле цикла выполняется многократно. Это называется итерацией.

Вы можете использовать многочисленные выражения в цикле while.

Например вы можете использовать условный оператор if, для принятия решений. В качестве примера представим игру, где нам нужно пройтись по всем действиям игроков, и в зависимости от действия дать или снять соответственные очки.

Данный код использует операторы if/else внутри цикла while чтобы определить четные и нечетные цифры в промежутке от 1 до 10.

x = 1
while x < 10:
if x%2 == 0:
print(str(x) + ” is even”)
else:
print(str(x) + ” is odd”)
x += 1

str(x) конвертирует число x в строку, чтобы потом оно могло быть использовано в конкатенации.

Чтобы прервать цикл while досрочно, используйте инструкцию break.
Например, мы можем остановить бесконечный цикл при истинности какого-нибудь выражения.

i = 0
while True:
print(i)
i = i + 1
if i >= 5:
print(“Breaking”)
break

print(“Finished”)

while True – легкий способ создать бесконечный цикл.

Пример использования оператора break:
Бесконечный цикл while может быть использован для непрерывного получения данных от пользователя. Представим, вы создаете программу-калькулятор, который должен получать цифры от пользователя и складывать их до тех пор, пока пользователь не напишет “stop”.
В данном случае оператор break остановит бесконечный цикл, если ввод от пользователя будет равен “stop”.

В отличие от break, оператор continue не останавливает цикл, а переводит выполнение его обратно на начало. По сути инструкция continue останавливает текущую итерацию и переходит к следующей.

i = 1
while i<=5:
print(i)
i+=1
if i==3:
print(“Skipping 3”)
continue

Пример использования оператора continue:
Система продажи авиабилетов должна посчитать общую сумму всех проданных авиабилетов. Билеты для детей возрастом меньше 1-го года бесплатны. Программа будет использовать цикл while для итерации по списку пассажиров и суммировать их. В этом случае оператор continue даст возможность не считать билеты детей.

Цикл for предназначены для итерации по поочеродностям, таким, как списки и строки.

Данный код выводит каждый элемент списка и добавляет к нему восклицательный знак:

words = [“hello”, “world”, “spam”, “eggs”]
for word in words:
print(word + “!”)

В коде переменная word представляет из себя соответствующий элемент списка words при каждой итерации. При первой итерации, значение переменной word равно “hello”, а во второй – “world”, и так далее.

Цикл for может быть использован для итерации вдоль строк:

str = “testing for loops”
count = 0

for x in str:
if(x == ‘t’):
count += 1

print(count)

Данный код объявляет переменную count, итерирует по строке и считает количество символов “t” в ней. В ходе каждой итерации переменная x представляет каждый символ строки.
Значение переменной count возрастает на 1 каждый раз, когда программа находит символ “t” в строке. Таким образом, в конце цикла она вернет количество символов “t” в строке.

Оба оператора for и while могут быть использованы для повторения фрагмента кода.

Когда число итераций зафиксировано, более целесообразно использовать цикл for. Например, итерировать по фиксированным элементам в списке покупок.

Цикл while, наоборот, нужен, когда число итераций неизвестно, и зависит от каких либо вычислений и условий внутри блока кода этого цикла.
Например, завершение программы, когда пользователь вводит указанное слово.