Операторы цикла Python3
В этой главе будет рассказано об использовании операторов цикла Python.
Операторами цикла в Python являются for и while.
Схема управляющей структуры операторов цикла Python выглядит следующим образом:
Ключевые слова и методы управления циклом
| Ключевое слово / Функция | Описание | Пример |
|---|---|---|
for |
Итерационный цикл, используется для обхода последовательностей или итерируемых объектов | for i in list: |
while |
Условный цикл, продолжает выполняться, пока условие истинно | while x > 0: |
break |
Немедленно завершить текущий цикл | break |
continue |
Пропустить оставшийся код этого цикла и перейти к следующей итерации | continue |
else (loop) |
Выполняется, когда цикл завершается нормально (не прерван с помощью break) | for i in range(3): ... else: ... |
pass |
Оператор-заполнитель в цикле (без операции) | for i in range(5): pass |
range() |
Генерирует последовательности целых чисел, часто используется с циклами for | range(0, 5) |
enumerate() |
Получает индекс и значение одновременно во время итерации | for i, v in enumerate(list): |
цикл while
Общий вид оператора while в Python:
while 判断条件(condition):
执行语句(statements)……
Блок-схема выполнения выглядит следующим образом:

Демонстрация выполнения в GIF:

Также обратите внимание на двоеточие и отступы. Кроме того, в Python нет цикла do..while.
В следующем примере используется while для вычисления суммы чисел от 1 до 100:
Пример
Результат выполнения выглядит следующим образом:
1 到 100 之和为: 5050
Бесконечный цикл
Мы можем реализовать бесконечный цикл, задав условное выражение так, чтобы оно никогда не было ложным, как в следующем примере:
Пример
После выполнения приведенного выше скрипта результат вывода выглядит следующим образом:
输入一个数字 :5 你输入的数字是: 5 输入一个数字 :
Вы можете использовать CTRL+Cдля выхода из текущего бесконечного цикла.
Бесконечные циклы очень полезны для запросов в реальном времени от клиентов на серверах.
Цикл while с использованием оператора else
Если условие после while ложно, выполняется блок оператора else.
Формат синтаксиса следующий:
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
Если условие expr истинно, выполняется блок statement(s); если оно ложно, выполняется additional_statement(s).
Цикл для вывода чисел и сравнения их величин:
Пример
После выполнения приведенного выше скрипта результат вывода выглядит следующим образом:
0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 大于或等于 5
Группа простых операторов
Подобно синтаксису оператора if, если тело вашего цикла while содержит только один оператор, вы можете записать этот оператор в той же строке, что и while, как показано ниже:
Пример
Примечание:Вы можете использовать CTRL+C, чтобы прервать вышеуказанный бесконечный цикл.
После выполнения приведенного выше скрипта результат вывода выглядит следующим образом:
Welcome to Example Tutorial! Welcome to Example Tutorial! Welcome to Example Tutorial! Welcome to Example Tutorial! Welcome to Example Tutorial! ……
Оператор for
Цикл for в Python может перебирать любой итерируемый объект, например список или строку.
Общий формат цикла for выглядит следующим образом:
Блок-схема:

Пример цикла for в Python:
Пример
Результат выполнения приведенного выше кода:
Baidu Google Example Taobao
Его также можно использовать для вывода каждого символа в строке:
Пример
Результат выполнения приведенного выше кода:
r u n o o b
Целочисленные значения диапазона можно использовать вместе с функцией range():
Пример
Результат выполнения приведенного выше кода:
1 2 3 4 5
for...else
В Python конструкция for...else используется для выполнения блока кода после завершения цикла.
Формат синтаксиса следующий:
for item in iterable:
# 循环主体
else:
# 循环结束后执行的代码
Когда цикл завершает выполнение (то есть после того, как все элементы в итерируемом объекте были пройдены), код в блоке else будет выполнен. Если во время цикла встречается оператор break, цикл будет прерван, и в этот момент блок else не будет выполнен.
Пример
print(x)
else:
print("Наконец-то завершено!")
После выполнения скрипта результат вывода:
0 1 2 3 4 5 Finally finished!
В следующем примере for используется оператор break. Оператор break используется для выхода из текущего тела цикла, и блок else не будет выполнен:
Пример
После выполнения скрипта, когда цикл достигнет "Example", он выйдет из тела цикла:
循环数据 Baidu 循环数据 Google Example! 完成循环!
Функция range()
Если вам нужно перебрать последовательность чисел, вы можете использовать встроенную функцию range(). Она сгенерирует последовательность чисел, например:
Пример
Вы также можете использовать range() для указания значений в интервале:
Пример
Вы также можете заставить range() начинаться с указанного числа и задать другой шаг (который может быть даже отрицательным, иногда также называемый 'step'):
Пример
Отрицательные числа:
Пример
Вы можете объединить функции range() и len(), чтобы перебрать индексы последовательности, как показано ниже:
Пример
Вы также можете использовать функцию range() для создания списка:
Пример
Подробнее об использовании функции range() см.:https://www.example.com/python3/python3-func-range.html
Операторы break и continue и ветви else в циклах
Блок-схема выполнения break:

Блок-схема выполнения continue:
Процесс выполнения кода оператора while:
Процесс выполнения кода оператора for:
breakОператор break может выйти из тел циклов for и while. Если вы прерываете цикл for или while, соответствующий блок else цикла не будет выполнен.
continueОператор continue используется, чтобы сообщить Python о необходимости пропустить оставшиеся инструкции в текущем блоке цикла и затем перейти к следующей итерации цикла.
Пример
Использование break в while:
Пример
while n > 0:
n -= 1
if n == 2:
break
print(n)
print('Loop ended.')
Результат вывода:
4 3 循环结束。
Использование continue в while:
Пример
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print('Loop ended.')
Результат вывода:
4 3 1 0 循环结束。
Ниже приведены дополнительные примеры:
Пример
Результат вывода вышеприведённого скрипта:
当前字母为 : R 当前字母为 : u 当前字母为 : n 当前字母为 : o 当前字母为 : o 当前变量值为 : 10 当前变量值为 : 9 当前变量值为 : 8 当前变量值为 : 7 当前变量值为 : 6 Good bye!
В следующем примере выполняется перебор строки Example и пропускается вывод, когда встречается буква o:
Пример
Результат вывода вышеприведённого скрипта:
当前字母 : R 当前字母 : u 当前字母 : n 当前字母 : b 当前变量值 : 9 当前变量值 : 8 当前变量值 : 7 当前变量值 : 6 当前变量值 : 4 当前变量值 : 3 当前变量值 : 2 当前变量值 : 1 当前变量值 : 0 Good bye!
Операторы цикла могут иметь ветвь else; она выполняется, когда цикл завершается в результате исчерпания списка (в цикле for) или когда условие становится ложным (в цикле while), но она не выполняется, когда цикл прерывается с помощью break.
Следующий пример — это пример цикла для поиска простых чисел:
Пример
Вывод выполнения вышеприведённого скрипта:
2 是质数 3 是质数 4 等于 2 * 2 5 是质数 6 等于 2 * 3 7 是质数 8 等于 2 * 4 9 等于 3 * 3
Оператор pass
Python pass — это пустой оператор, используемый для сохранения целостности структуры программы.
pass ничего не делает; обычно он используется как оператор-заглушка, как в следующем примере
Пример
Наименьший класс:
Пример
В следующем примере выполняется блок оператора pass, когда буква равна o:
Пример
Вывод выполнения вышеприведённого скрипта:
当前字母 : R 当前字母 : u 当前字母 : n 执行 pass 块 当前字母 : o 执行 pass 块 当前字母 : o 当前字母 : b Good bye!Другие расширения