На этом шаге мы рассмотрим назначение и особенности использования этого оператора.
Предположим, нужно вывести все числа от 1 до 100 по одному на строке. Обычным способом пришлось бы писать 100 строк кода:
print(1) print(2) . . . . print(100)
При помощи циклов то же действие можно выполнить одной строкой кода:
for х in range (1, 101): print (x)
Иными словами, циклы позволяют выполнить одни и те же инструкции многократно. Цикл for применяется для перебора элементов последовательности и имеет такой формат:
for <Текущий элемент> in <Последовательность>: <Инструкции внутри цикла> [else: <Блок, выполняемый, если не использовался оператор break> ]
Здесь присутствуют следующие конструкции:
Приведем пример перебора букв в слове:
# -*- coding: utf-8 -*- for s in "str": print(s, end=" ") else: print("\nЦикл выполнен")
Результат выполнения:
Рис.1. Результат выполнения
Теперь выведем каждый элемент списка и кортежа на отдельной строке:
for x in [1, 2, 3]: print(x) for y in (1, 2, 3): print(y)
Рис.2. Результат выполнения
Цикл for позволяет также перебрать элементы словарей, хотя словари и не являются последовательностями. В качестве примера выведем элементы словаря двумя способами. Первый способ использует метод keys (), возвращающий объект dictkeys, который содержит все ключи словаря. Во втором способе мы просто указываем словарь в качестве параметра - на каждой итерации цикла будет возвращаться ключ, с помощью которого внутри цикла можно получить значение, соответствующее этому ключу.
>>> arr = {"x": 1, "y": 2, "z": 3} >>> arr.keys() dict_keys(['x', 'y', 'z']) >>> for key in arr.keys(): # Использование метода keys() print(key, arr[key]) y 2 x 1 z 3 >>> for key in arr: # Словари также поддерживают итерации print(key, arr[key]) y 2 x 1 z 3
Обратите внимание на то, что элементы словаря выводятся в произвольном порядке, а не в порядке, в котором они были указаны при создании объекта. Чтобы вывести элементы в алфавитном порядке, следует отсортировать ключи с помощью функции sorted ():
>>> arr = {"x": 1, "y": 2, "z": 3} >>> for key in sorted(arr): print(key, arr[key]) x 1 y 2 z 3
С помощью цикла for можно перебирать сложные структуры данных. В качестве примера выведем элементы списка кортежей:
>>> arr = [(1, 2), (3, 4)] >>> for a, b in arr: print(a, b) 1 2 3 4
На следующем шаге мы рассмотрим функции range() и enumerate().