Глава 7 • Ввод данных и циклы while
управляет ходом выполнения программы; она позволит вам управлять тем, какая
часть кода выполняется, а какая нет.
Рассмотрим пример — программу, которая спрашивает у пользователя, в каких го-
родах он бывал. Чтобы прервать цикл
while
, программа выполняет команду
break
,
как только пользователь введет значение
'quit'
:
cities.py
prompt = "\nPlease enter the name of a city you have visited:"
prompt += "\n(Enter 'quit' when you are finished.) "
while True:
city = input(prompt)
if city == 'quit':
break
else:
print("I'd love to go to " + city.title() + "!")
Цикл, который начинается с
while
True
, будет выполняться бесконечно — если
только в нем не будет выполнена команда
break
. Цикл в программе продолжает
запрашивать у пользователя названия городов, пока пользователь не введет строку
'quit'
. При вводе строки
'quit'
выполняется команда
break
, по которой Python
выходит из цикла:
Please enter the name of a city you have visited:
(Enter 'quit' when you are finished.)
New York
I'd love to go to New York!
Please enter the name of a city you have visited:
(Enter 'quit' when you are finished.)
San Francisco
I'd love to go to San Francisco!
Please enter the name of a city you have visited:
(Enter 'quit' when you are finished.)
quit
ПРИМЕЧАНИЕ
Команда break может использоваться в любых циклах Python . Например, ее можно вклю-
чить в цикл for для перебора элементов словаря .
Команда continue и продолжение цикла
Вместо того чтобы полностью прерывать выполнение цикла без выполнения остав-
шейся части кода, вы можете воспользоваться командой
continue
для возвращения
к началу цикла и проверке условия. Например, возьмем цикл, который считает от 1
до 10, но выводит только нечетные числа в этом диапазоне:
counting.py
current_number = 0
while current_number < 10:
current_number += 1
if current_number % 2 == 0:
Циклы while
129
continue
print(current_number)
Сначала переменной
current_number
присваивается 0. Так как значение меньше 10,
Python входит в цикл
while
. При входе в цикл счетчик увеличивается на 1 в точ-
ке
, поэтому
current_number
принимает значение 1. Затем команда
if
проверяет
остаток от деления
current_number
на 2. Если остаток равен 0 (это означает, что
current_number
делится на 2), команда
continue
приказывает Python проигно-
рировать оставшийся код цикла и вернуться к началу. Если счетчик не делится
на 2, то оставшаяся часть цикла выполняется, и Python выводит текущее значение
счетчика:
1
3
5
7
9
Предотвращение зацикливания
У каждого цикла
while
должна быть предусмотрена возможность завершения, что-
бы цикл не выполнялся бесконечно. Например, следующий цикл считает от 1 до 5:
counting.py
x = 1
while x <= 5:
print(x)
x += 1
Но если случайно пропустить строку
x
+=
1
(см. далее), то цикл будет выполняться
бесконечно:
# Бесконечный цикл!
x = 1
while x <= 5:
print(x)
Теперь переменной
x
присваивается начальное значение 1, но это значение никог-
да не изменяется в программе. В результате проверка условия
x
<=
5
всегда дает
результат
True
, и цикл
while
выводит бесконечную серию единиц:
1
1
1
1
…
Любой программист время от времени пишет бесконечный цикл, особенно если
в программе используются неочевидные условия завершения. Если ваша про-
грамма зациклилась, нажмите Ctrl+C или просто закройте терминальное окно
с выводом программы.
130
Достарыңызбен бөлісу: |