Если проанализировать все программы, то на втором месте после условного оператора будут операторы цикла. Используя цикл, вы можете повторить операторы, находящиеся в теле цикла. Количество повторов зависит от типа цикла - можно даже создать бесконечный цикл. В этом и есть некоторая опасность циклов - если не предусмотреть условие выхода из цикла, то может произойти зацикливание программы, когда тело цикла будет выполняться постоянно.
Цикл for в других языка называют еще циклом со счетчиком, поскольку он позволяет повторить тело цикла ( инструкции внутри цикла) определенное количество раз. В Python цикл for больше похож на цикл foreach языка РНР - он позволяет перебрать элементы последовательности.
Формат цикла for следующий:
for <элемент> in <последовательность>
<тело цикла>
[else:
<блок, который будет выполнен, если не использовался оператор break>
]
Здесь элемент - это переменная, через которую будет доступен текущий элемент итерации. Последовательность - объект, поддерживающий механизм итерации - строка, список, кортеж, словарь и т.д. Тело цикла - операторы, которые будут выполняться при каждой итерации цикла.
Изюминка цикла for в языке Python - наличие блока else, который задает операторы, которые будут выполнены, если внутри цикла не использовался оператор break. Данный блок не является обязательным, но вы можете его использовать в контексте, показанном в листинге ниже.
Листинг. Пример использования блока else в цикле for
for i in range(l, 10):
print(i)
else:
print("Bce.")
Результат выполнения этого кода приведен на рисунке. Как видите, сценарий вывел числа от 1 до 9 и в конце работы цикла вывел сообщение "Все.". Теперь переделаем цикл так, чтобы внутри был оператор break, который прерывает работу цикла. Результат изображен на рисунке. Как видите, если выполнение цикла прерывается оператором break, то операторы из блока else не выполняются.
for i in range (1, 10):
print (i)
if i == 6:
break
else:
print("Bce.")
Справочник Python Блок else не обязателен и вы можете его не использовать.
Цикл for можно также использовать для перебора элементов словаря, хотя словарь не является последовательностью. В листинге ниже приведен пример перебора элементов словаря.
Листинг. Пример перебора элементов словаря
dict = {"а" : 1, "Ь": 2}
for key in dict.keys():
print(key, " => ", dict[key])
Наверное, вы заметили, что элементы словаря выведены в произвольном порядке, а не в том, который был указан при создании объекта. Чтобы упорядочить вывод словаря, его ключ нужно отсортировать функцией sorted():
for key in sorted(dict.keys()):
print(key, " => ", dict[key])
После этого вывод будет такой, как вы ожидали:
c:\Python39>python dict.py
а => 1
b => 2
Цикл for можно использовать не только для прохода по последовательности чисел. Возможен проход по любой последовательности элементов. Например, вот так можно пройтись по всем буквам:
for letter in word:
print (letter)