Главная страница » Как работает цикл for в python

Как работает цикл for в python

В Python цикл for — это мощный и интуитивно понятный инструмент для Итерации по последовательностям (sequences) или Другим итерируемым объектам (iterables). В отличие от многих других языков, где for часто используется для перебора чисел или индексов, в Python for предназначен для Перебора элементов непосредственно.

Базовый синтаксис

Python

For переменная_итерации in итерируемый_объект:
 # Блок кода, который будет выполняться для каждого элемента
 # Используйте 'переменная_итерации' для доступа к текущему элементу

Разбор:

    Итерируемый_объект: Это любой объект, по которому можно итерировать. Это может быть:

      Списки (List) Кортежи (Tuple) Строки (Str) Множества (Set) Словари (Dict) (итерирует по ключам по умолчанию) Объекты Range() Файловые объекты Любой другой объект, который реализует протокол итератора (например, объекты, созданные генераторами).

    Переменная_итерации: На каждой итерации цикла ей будет присваиваться следующий элемент из итерируемого_объекта. Блок кода: Это отступы, которые определяют тело цикла. Весь код с этим отступом будет выполняться для каждого элемента.

Как это работает "под капотом" (упрощенно)

Когда Python встречает цикл for, он делает следующее:

Получает Итератор для итерируемого_объекта (по сути, "указатель" на начало последовательности). На каждой итерации вызывает метод next() у этого итератора. Результат next() присваивается переменной_итерации. Выполняет блок кода внутри цикла. Повторяет шаги 2-4 до тех пор, пока next() не вызовет исключение StopIteration. Это исключение сигнализирует о том, что элементов больше нет, и цикл завершается.

Вам не нужно беспокоиться об этих низкоуровневых деталях, Python делает это за вас!

Примеры использования for

1. Перебор списка

Python

Fruits = ["apple", "banana", "cherry"]
For fruit in fruits:
 print(f"Мне нравится {fruit}")
 
# Вывод:
# Мне нравится apple
# Мне нравится banana
# Мне нравится cherry

2. Перебор строки

Python

Word = "Python"
For char in word:
 print(char)
 
# Вывод:
# P
# y
# t
# h
# o
# n

3. Перебор чисел с помощью range()

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

    range(stop): Генерирует числа от 0 до stop-1. range(start, stop): Генерирует числа от start до stop-1. range(start, stop, step): Генерирует числа от start до stop-1 с указанным шагом.

Python

# От 0 до 4
For i in range(5):
 print(f"Число: {i}")
 
# Вывод:
# Число: 0
# Число: 1
# Число: 2
# Число: 3
# Число: 4
 
# От 2 до 5
For i in range(2, 6):
 print(f"i = {i}")
 
# Вывод:
# i = 2
# i = 3
# i = 4
# i = 5
 
# От 10 до 0 с шагом -2
For i in range(10, 0, -2):
 print(f"Обратный отсчет: {i}")
 
# Вывод:
# Обратный отсчет: 10
# Обратный отсчет: 8
# Обратный отсчет: 6
# Обратный отсчет: 4
# Обратный отсчет: 2

4. Перебор словаря

По умолчанию, при итерации по словарю, вы перебираете его Ключи.

Python

Student_grades = {
 "Alice": 95,
 "Bob": 88,
 "Charlie": 92
}
 
# Перебор ключей
For name in student_grades:
 print(f"Имя: {name}")
 
# Перебор значений
For grade in student_grades. values():
 print(f"Оценка: {grade}")
 
# Перебор пар ключ-значение (рекомендуется)
For name, grade in student_grades. items():
 print(f"У {name} оценка {grade}")
 
# Вывод (для items()):
# У Alice оценка 95
# У Bob оценка 88
# У Charlie оценка 92

5. Использование enumerate() (для доступа к индексу и значению)

Если вам нужен как элемент, так и его индекс, используйте enumerate().

Python

Colors = ["red", "green", "blue"]
For index, color in enumerate(colors):
 print(f"Цвет на позиции {index}: {color}")
 
# Вывод:
# Цвет на позиции 0: red
# Цвет на позиции 1: green
# Цвет на позиции 2: blue

Break и continue в цикле for

    Break: Полностью прерывает выполнение цикла и выходит из него. Continue: Пропускает оставшуюся часть текущей итерации и переходит к следующей.

Python

Numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
Print("Пример с continue:")
For num in numbers:
 if num % 2 != 0: # Если число нечетное
 continue # Пропускаем остаток этой итерации
 print(f"Четное число: {num}")
# Вывод: 2, 4, 6, 8, 10
 
Print("\nПример с break:")
For num in numbers:
 if num > 5:
 break # Прерываем цикл, если число больше 5
 print(f"Число до 5: {num}")
# Вывод: 1, 2, 3, 4, 5

Else блок в цикле for

Цикл for в Python может иметь необязательный блок else, который выполняется, если цикл завершился Без вызова Break.

Python

For i in range(5):
 print(i)
Else:
 print("Цикл завершился без break.")
# Вывод: 0, 1, 2, 3, 4, Цикл завершился без break.
 
For i in range(5):
 print(i)
 if i == 2:
 break
Else:
 print("Этот блок не будет выполнен, потому что был break.")
# Вывод: 0, 1, 2

В целом, цикл for в Python — это мощный и гибкий инструмент для итерации по коллекциям, который делает код чистым и читаемым.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх