Шаг 26.
Основы языка Python.
Условные операторы и циклы. Цикл for

    На этом шаге мы рассмотрим назначение и особенности использования этого оператора.

    Предположим, нужно вывести все числа от 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().




Предыдущий шаг Содержание Следующий шаг