Цикл 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 9Python допускає використання оператора 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]