Python для начинающих: Цикл for и итерируемые объекты

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

Итерируемые объекты

Цикл for в Python перебирает значения итерируемого объекта — объекта, способного возвращать элементы по одному. К таким объектам относятся строки, списки, кортежи и другие последовательности. Например, в строке можно перебрать символы, так как каждый символ является элементом строки. Числа не являются последовательностями: каждое число — это один объект с одним значением.

Работа цикла for

Тело цикла выполняется один раз для каждого элемента последовательности. Переменной (например, i) присваивается значение очередного элемента, и выполняются действия с этим элементом. Цикл завершается, когда все элементы обработаны.

Общая схема:

for <элемент> in <последовательность>:
    <действия>

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

Пример 1: Перебор символов строки

stroka = "Hello"
for i in stroka:
    print(i)

Этот код выведет каждый символ строки «Hello» на новой строке.

Пример 2: Перебор элементов кортежа

for i in (45, 89, "Hello", "!"):
    print(i)

Этот код перебирает элементы кортежа, содержащего числа и строки.

Пример 3: Генерация последовательности с помощью range() и вывод таблицы умножения

for x in range(1, 11):
    print()  # пустая строка для форматирования
    for y in range(1, 11):
        print(f"{x} * {y} = {x * y}|", end="")

Этот код выводит таблицу умножения от 1 до 10, используя вложенные циклы for и функцию range().

Функция range()

Функция range() генерирует последовательность чисел в заданном диапазоне. Она принимает три аргумента:

  • Начало диапазона: (необязательный, по умолчанию 0)
  • Конец диапазона: (обязательный, число не включается в диапазон)
  • Шаг: (необязательный, по умолчанию 1)

Примеры:

  • range(1, 10): генерирует числа от 1 до 9 (10 не включено).
  • range(10): генерирует числа от 0 до 9.
  • range(1, 10, 2): генерирует нечётные числа от 1 до 9 (1, 3, 5, 7, 9).
  • range(10, 0, -1): генерирует числа от 10 до 1 (в обратном порядке).

Функция enumerate()

Функция enumerate() позволяет автоматически подсчитывать итерации цикла. Она принимает два аргумента: итерируемый объект и начальное значение счетчика (по умолчанию 0).

Пример:

stroka = "Hello"
for i, c in enumerate(stroka, 4):  # Начало отсчета с 4
    print(i, c)

Операторы break и continue

  • break: досрочно выходит из цикла.
  • continue: пропускает текущую итерацию и переходит к следующей.

Пример break:

for i in range(1, 11):
    if i == 7:
        break
    print(i)

Пример continue:

stroka = "Hello"
for i in stroka:
    if i == 'l':
        continue
    print(i)

Пример задачи: Сумма чисел, кратных 6

Напишите программу, которая по последовательности натуральных чисел определяет сумму чисел, кратных 6. Программа получает на вход количество чисел, а затем сами числа.

k = int(input())
s = 0
for _ in range(k):
    n = int(input())
    if n % 6 == 0:
        s += n
print(s)

Этот код запрашивает количество чисел, затем каждое число по очереди и суммирует числа, кратные 6. Результат выводится на экран.

Что будем искать? Например,программа