Цикл for у Python надає можливість послідовно обходити об’єкт послідовності (рядок, кортеж, список, множина, словник, тощо), та виконувати певний блок коду на кожному кроці ітерації (наприклад застосований до поточного елементу ітерації).

Синтаксис циклу for у Python

Базовий синтаксис циклу for виглядає наступним чином:

for item in sequence:
    # Code block to execute

  • item – змінна, котра під час ітерації містить значення поточного елемента з послідовності
  • sequence – об’єкт послідовності, над яким виконується ітерація (список, кортеж, рядок, діапазон, тощо)
  • блок коду з відступом, котрий виконується на кожному кроці ітерації

Приклади використання циклу for

Ітерація списку:

numbers = [1, 10, 100]

for number in numbers:
    print(number, end=' ')

# 1 10 100

Використання range() (Функція range в Python) з циклом for:

for i in range(5):
    print(i, end=' ')

# 0 1 2 3 4

У цьому прикладі range(5) генерує послідовність чисел від 0 до 4, а цикл for ітераційно перебирає цю послідовність, виводячи кожне число.

Рядки у Python – це послідовності символів, тому можна використовувати цикл for для перебору символів рядка:

word = 'Python'

for letter in word:
    print(letter, end=' ')

# P y t h o n

При ітерації словника, можна перебирати його ключі, значення або і те, і інше. Приклад перебору ключів і значень словника:

person = {
    'name': 'John',
    'age': 25,
    'city': 'New York'
}

for key, value in person.items():
    print(f'Key: {key}, Value: {value}')

# Key: name, Value: John
# Key: age, Value: 25
# Key: city, Value: New York

У цьому прикладі person.items() повертає послідовність пар ключ-значення словника, яку перебирає цикл for.

Оператор break у циклі for

Оператор break використовується для передчасного виходу з циклу for (наприклад переривання циклу в разі виконання певної умови).

Розглянемо приклад, коли потрібно знайти перше число у діапазоні (range), яке ділиться на 7:

for number in range(10, 50):
    if number % 7 == 0:
        print(f'Found first number divisible by 7: {number}')
        break

# Found first number divisible by 7: 14

Оператор continue у циклі for

Оператор continue всередині циклу for, використовується щоб пропустити виконання тіла циклу за певної умови.

Розглянемо приклад, коли список містить позитивні та негативні числа, і потрібно отримати суму позитивних чисел:

numbers = [1, 2, -3, 4, -5]

sum_positive = 0

for number in numbers:
    if number < 0:
        continue
    sum_positive += number

print(f'Sum positive numbers: {sum_positive}')

# Sum positive numbers: 7

Специфічні кейси циклу for у Python

Є можливість вкладати цикл for всередину іншого циклу, при потребі обробки більш складних ітерацій. Приклад перебору списку списків (матриці):

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for row in matrix:
    for number in row:
        print(number, end=' ')
    print()

# 1 2 3
# 4 5 6
# 7 8 9

Python допускає використання оператора else з циклом for, для визначення блоку коду який виконується після завершення циклу, тільки у випадку якщо цикл не було перервано оператором break. Приклад перевірки, чи всі числа у списку парні:

numbers = [2, 4, 6, 8, 9]

for number in numbers:
    if number % 2 != 0:
        print(f'Found odd number: {number}')
        break
else:
    print('All numbers are even')

# Found odd number: 9

Також за допомогою оператора for, Python надає стислий спосіб створення списків – list comprehensions. Приклад створення списку квадратів чисел від 1 до 4:

squares = [x ** 2 for x in range(5)]

print(squares)
# [0, 1, 4, 9, 16]


Мітки: