Циклы используются для повторения действий. Цикл 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. Результат выводится на экран.