Цикл for в Python [с простыми примерами]

Цикл for в Python – это итерирующая функция. Если у вас есть объект последовательности, такой как список, вы можете использовать цикл for для перебора элементов, содержащихся в списке.

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

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

Базовый синтаксис цикла for в Python

Базовый синтаксис цикла for в Python выглядит примерно так, как указано ниже.

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

Позвольте мне лучше объяснить синтаксис цикла for в Python.

  • Первое слово оператора начинается с ключевого слова “for”, которое обозначает начало цикла for.
  • Затем у нас есть переменная-итератор, которая перебирает последовательность и может использоваться внутри цикла для выполнения различных функций
  • Далее идет ключевое слово “in” в Python, которое указывает переменной-итератору выполнять цикл для элементов внутри последовательности
  • И, наконец, у нас есть переменная sequence variable, которая может быть либо списком, либо кортежем, либо любым другим видом итератора.
  • Часть инструкций цикла – это место, где вы можете работать с переменной итератора и выполнять различные функции.

1. Печать отдельных букв строки с использованием цикла for

Строка Python – это последовательность символов. Если в любом из ваших программных приложений вам нужно обойти отдельные символы строки, вы можете использовать здесь цикл for.

Вот как это будет работать для вас.

word="anaconda"
for letter in word:
	print (letter)

Вывод:

a
n
a
c
o
n
d
a

Этот цикл работает потому, что Python рассматривает “строку” как последовательность символов, а не как целое.

2. Использование цикла for для перебора списка или кортежа Python

Списки и кортежи – итерируемые объекты. Давайте посмотрим, как мы можем перебирать элементы внутри этих объектов сейчас.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

Вывод:

Apple
Banana
Car
Dolphin

Теперь давайте перейдем к перебору элементов кортежа здесь.

nums = (1, 2, 3, 4)

sum_nums = 0

for num in nums:
    sum_nums = sum_nums + num

print(f'Sum of numbers is {sum_nums}')


# Вывод


# Сумма чисел равна 10


3. Вложенные циклы for в Python

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

Рассмотрим пример списка выше. Цикл for выводит отдельные слова из списка. Но что, если мы хотим вывести отдельные символы каждого из слов внутри списка?

Здесь лучше работает вложенный цикл for. Первый цикл (родительский цикл) будет перебирать слова по одному. Второй цикл (дочерний цикл) будет перебирать символы каждого из слов.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        
# Этот цикл извлекает слово из списка

        print ("The following lines will print each letters of "+word)
        for letter in word:
                
# Этот цикл извлекает букву для слова

                print (letter)
        print("") 
# Этот вывод используется для печати пустой строки

Вывод

4. Цикл for в Python с функцией range()

Python range() – одна из встроенных функций. Когда вам нужно, чтобы цикл for выполнялся определенное количество раз или вам нужно указать диапазон объектов для печати, функция range работает очень хорошо. Рассмотрим следующий пример, где я хочу вывести числа 1, 2 и 3.

for x in range(3):
    print("Printing:", x)
	
# Вывод

# Печать: 0
# Печать: 1
# Печать: 2

Функция range также принимает еще один параметр, помимо начала и конца. Это параметр шага. Он указывает функции range, сколько чисел пропустить между каждым счетчиком.

В следующем примере я использовал число 3 в качестве шага, и вы можете видеть, что выводимые числа – это предыдущее число + 3.

for n in range(1, 10, 3):
    print("Printing with step:", n)
	
# Вывод

# Печать со шагом: 1
# Печать со шагом: 4
# Печать со шагом: 7

5. оператор break в цикле for

Оператор break используется для преждевременного выхода из цикла for. Он используется для прерывания цикла for, когда выполняется определенное условие.

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

В этом случае мы будем использовать условие if else в Python вместе с нашим циклом for.

nums = [1, 2, 3, 4, 5, 6]

n = 2

found = False
for num in nums:
    if n == num:
        found = True
        break

print(f'List contains {n}: {found}')

# Результат
# Список содержит 2: True

6. оператор continue в цикле for

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

Предположим, у нас есть список чисел, и мы хотим вывести сумму положительных чисел. Мы можем использовать оператор continue, чтобы пропустить цикл for для отрицательных чисел.

nums = [1, 2, -3, 4, -5, 6]

sum_positives = 0

for num in nums:
    if num < 0:
        continue
    sum_positives += num

print(f'Sum of Positive Numbers: {sum_positives}')

6. Цикл for в Python с блоком else

Мы можем использовать блок else с циклом for в Python. Блок else выполняется только тогда, когда цикл for не завершается оператором break.

Предположим, у нас есть функция, которая выводит сумму чисел только в том случае, если все числа четные.

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

def print_sum_even_nums(even_nums):
    total = 0

    for x in even_nums:
        if x % 2 != 0:
            break

        total += x
    else:
        print("For loop executed normally")
        print(f'Sum of numbers {total}')


# это выведет сумму
print_sum_even_nums([2, 4, 6, 8])

# это не выведет сумму из-за нечетного числа в последовательности
print_sum_even_nums([2, 4, 5, 8])

# Результат

# Цикл for выполнен нормально
# Сумма чисел 20

Заключение

Цикл for в Python очень похож на циклы в других языках программирования. Мы можем использовать операторы break и continue с циклом for для изменения выполнения. Однако в Python у нас также может быть необязательный блок else в цикле for.

I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.

Source:
https://www.digitalocean.com/community/tutorials/python-for-loop-example