Поиск по сайту:

Как создавать циклы For в Python 3


Использование циклов в компьютерном программировании позволяет нам автоматизировать и многократно повторять одни и те же задачи. В этом уроке мы рассмотрим цикл for в Python.

Цикл for реализует повторное выполнение кода на основе счетчика цикла или переменной цикла. Это означает, что циклы for используются чаще всего, когда количество итераций известно до входа в цикл, в отличие от циклов while, которые основаны на условиях.

Предпосылки

У вас должен быть установлен Python 3 и настроена среда программирования на вашем компьютере или сервере. Если у вас не настроена среда программирования, вы можете обратиться к руководствам по установке и настройке среды программирования на вашем сервере, подходящей для вашей операционной системы (Ubuntu, CentOS, Debian и т. д.).

Для циклов

В Python циклы for строятся следующим образом:

for [iterating variable] in [sequence]:
    [do something]

Выполняемое что-то будет выполняться до тех пор, пока последовательность не закончится.

Информация: Чтобы следовать примеру кода в этом руководстве, откройте интерактивную оболочку Python в вашей локальной системе, выполнив команду python3. Затем вы можете копировать, вставлять или редактировать примеры, добавляя их после приглашения >>>.

Давайте посмотрим на цикл for, который перебирает диапазон значений:

for i in range(0,5):
   print(i)

Когда мы запускаем эту программу, вывод генерирует следующее:

Output
0 1 2 3 4

Этот цикл for устанавливает i в качестве переменной итерации, и последовательность существует в диапазоне от 0 до 5.

Затем внутри цикла мы выводим одно целое число за итерацию цикла. Имейте в виду, что в программировании мы, как правило, начинаем с индекса 0, поэтому, хотя выводятся 5 чисел, они находятся в диапазоне от 0 до 4.

Вы часто будете видеть и использовать циклы for, когда программе нужно повторить блок кода несколько раз.

Для циклов с использованием диапазона()

Одним из встроенных неизменяемых типов последовательностей Python является range(). В циклах range() используется для контроля количества повторений цикла.

При работе с range() вы можете передать ему от 1 до 3 целочисленных аргументов:

  • start указывает целочисленное значение, с которого начинается последовательность, если это не указано, то start начинается с 0
  • stop требуется всегда и представляет собой целое число, до которого ведется подсчет, но не включается
  • step устанавливает, насколько увеличить (или уменьшить в случае отрицательных чисел) следующую итерацию, если это опущено, то step по умолчанию равно 1

Мы рассмотрим несколько примеров передачи различных аргументов в range().

Во-первых, давайте передадим только аргумент stop, чтобы наша последовательность была настроена как range(stop):

for i in range(6):
   print(i)

В приведенной выше программе аргумент stop равен 6, поэтому код будет повторяться от 0 до 6 (исключая 6):

Output
0 1 2 3 4 5

Далее мы рассмотрим range(start, stop) со значениями, переданными для того, когда итерация должна начинаться и когда она должна останавливаться:

for i in range(20,25):
   print(i)

Здесь диапазон варьируется от 20 (включительно) до 25 (не включая), поэтому результат следующий:

Output
20 21 22 23 24

Аргумент step функции range() похож на указание шага при разрезании строк, поскольку его можно использовать для пропуска значений в последовательности.

Со всеми тремя аргументами step занимает конечную позицию: range(start, stop, step). Во-первых, давайте используем step с положительным значением:

for i in range(0,15,3):
   print(i)

В этом случае цикл for настроен так, что печатаются числа от 0 до 15, но с шагом, равным 3, так что печатается только каждое третье число. , вот так:

Output
0 3 6 9 12

Мы также можем использовать отрицательное значение для нашего аргумента step для итерации в обратном направлении, но нам придется соответствующим образом настроить наши аргументы start и stop:

for i in range(100,0,-10):
   print(i)

Здесь 100 — это значение start, 0 — это значение stop, а -10 — это диапазон, поэтому цикл начинается со 100 и заканчивается. в 0, уменьшаясь на 10 с каждой итерацией. Это происходит на выходе:

Output
100 90 80 70 60 50 40 30 20 10

При программировании на Python циклы for часто используют тип последовательности range() в качестве параметров для итерации.

Для циклов с использованием последовательных типов данных

Списки и другие типы последовательностей данных также можно использовать в качестве параметров итерации в циклах for. Вместо того, чтобы перебирать range(), вы можете определить список и выполнить итерацию по этому списку.

Мы назначим список переменной, а затем пройдемся по списку:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for shark in sharks:
   print(shark)

В этом случае мы распечатываем каждый элемент в списке. Хотя мы использовали переменную shark, мы могли бы назвать эту переменную любым другим допустимым именем переменной и получить тот же результат:

Output
hammerhead great white dogfish frilled bullhead requiem

Приведенный выше вывод показывает, что цикл for повторяется по списку и печатает каждый элемент из списка в каждой строке.

Списки и другие кортежи, основанные на последовательностях, обычно используются с циклами, потому что они повторяемы. Вы можете комбинировать эти типы данных с range() для добавления элементов в список, например:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for item in range(len(sharks)):
   sharks.append('shark')

print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Здесь мы добавили строку-заполнитель shark для каждого элемента длины списка sharks.

Вы также можете использовать цикл for для создания списка с нуля:

integers = []

for i in range(10):
   integers.append(i)

print(integers)

В этом примере список integers инициализируется пустым, но цикл for заполняет список следующим образом:

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Точно так же мы можем перебирать строки:

sammy = 'Sammy'

for letter in sammy:
   print(letter)
Output
S a m m y

Итерация по кортежам выполняется в том же формате, что и итерация по спискам или строкам выше.

При переборе словаря важно помнить о структуре ключ: значение, чтобы убедиться, что вы вызываете правильный элемент словаря. Вот пример, который вызывает как ключ, так и значение:

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}

for key in sammy_shark:
   print(key + ': ' + sammy_shark[key])
Output
name: Sammy animal: shark location: ocean color: blue

При использовании словарей с циклами for итерирующая переменная соответствует ключам словаря, а dictionary_variable[iterating_variable] — значениям. В приведенном выше случае итерирующая переменная key использовалась для обозначения ключа, а sammy_shark[key] — для обозначения значений.

Циклы часто используются для итерации и управления последовательными типами данных.

Вложенные циклы

Циклы могут быть вложены в Python, как и в другие языки программирования.

Вложенный цикл — это цикл, возникающий внутри другого цикла, структурно аналогичный вложенным операторам if. Они строятся так:

for [first iterating variable] in [outer loop]: # Outer loop
    [do something]  # Optional
    for [second iterating variable] in [nested loop]:   # Nested loop
        [do something]  

Сначала программа сталкивается с внешним циклом, выполняя свою первую итерацию. Эта первая итерация запускает внутренний вложенный цикл, который затем выполняется до завершения. Затем программа возвращается к началу внешнего цикла, завершая вторую итерацию и снова запуская вложенный цикл. Опять же, вложенный цикл выполняется до завершения, и программа возвращается к началу внешнего цикла до тех пор, пока последовательность не будет завершена или прерывание или другой оператор не прервут процесс.

Давайте реализуем вложенный цикл for, чтобы мы могли рассмотреть его поближе. В этом примере внешний цикл будет перебирать список целых чисел с именем num_list, а внутренний цикл будет перебирать список строк с именем alpha_list.

num_list = [1, 2, 3]
alpha_list = ['a', 'b', 'c']

for number in num_list:
    print(number)
    for letter in alpha_list:
        print(letter)

Когда мы запустим эту программу, мы получим следующий вывод:

Output
1 a b c 2 a b c 3 a b c

Вывод показывает, что программа завершает первую итерацию внешнего цикла, печатая 1, который затем запускает завершение внутреннего цикла, печатая a, b, c последовательно. После завершения внутреннего цикла программа возвращается к началу внешнего цикла, выводит 2, затем снова выводит весь внутренний цикл (a, b, c) и т. д.

Вложенные циклы for могут быть полезны для перебора элементов в списках, состоящих из списков. В списке, состоящем из списков, если мы используем только один цикл for, программа выведет каждый внутренний список как элемент:

list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]

for list in list_of_lists:
    print(list)
Output
['hammerhead', 'great white', 'dogfish'] [0, 1, 2] [9.9, 8.8, 7.7]

Чтобы получить доступ к каждому отдельному элементу внутренних списков, мы реализуем вложенный цикл for:

list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]

for list in list_of_lists:
    for item in list:
        print(item)
Output
hammerhead great white dogfish 0 1 2 9.9 8.8 7.7

Когда мы используем вложенный цикл for, мы можем перебирать отдельные элементы, содержащиеся в списках.

Мы можем увидеть вложенные циклы for, работающие в работающей программе, в нашем руководстве по набору инструментов обработки естественного языка (NLTK).

Заключение

В этом руководстве было показано, как циклы for работают в Python и как их создавать. Циклы for продолжают перебирать блок кода определенное количество раз.

Отсюда вы можете продолжить изучение циклов, прочитав руководства по операторам break, continue и pass.

Чтобы работать с циклами for в проектах, следуйте следующим руководствам:

  • Как создать Twitterbot с помощью Python 3 и библиотеки Tweepy
  • Как работать с языковыми данными в Python 3 с помощью набора инструментов для естественного языка NLTK
  • Как построить график частот слов с помощью matplotlib и Python 3