Урок 18 Цикл for

Перебор элементов последовательности

⏱ ~12 мин чтения· 📘 Базовый

Синтаксис for

Цикл for перебирает элементы последовательности — например, строку по символам:

# Перебор строки — каждый символ по порядку
for char in "Python":
    print(char)  # P  y  t  h  o  n

# Повторение N раз с помощью range()
for i in range(3):
    print("Привет")  # Привет  Привет  Привет

Переменная цикла (в примерах — char, i) принимает поочерёдно значение каждого элемента последовательности. Имя переменной может быть любым — выбирайте осмысленное название. Функция range() подробно разбирается в следующем уроке.

⚠️ Важно: ℹ️ Примечание: for также умеет перебирать списки, кортежи и другие коллекции — мы познакомимся с ними в уроке 21 (списки) и уроке 23 (кортежи).

Перебор строки посимвольно

Строка — это последовательность символов, поэтому for отлично подходит для её перебора:

word = "Привет"
for letter in word:
    print(letter)  # П  р  и  в  е  т

Можно также подсчитать количество определённых символов в строке:

text = "программирование"
count = 0
for char in text:
    if char == "р":
        count += 1
print(f"Буква 'р' встречается {count} раз(а)")  # 3

for с else

else выполняется, если цикл не был прерван break:

# Ищем символ 'x' в строке
text = "abcde"
search = "x"
for char in text:
    if char == search:
        print(f"Нашли '{search}'!")
        break
else:
    print(f"'{search}' не найден")
# Вывод: 'x' не найден (else выполнился, т.к. break не сработал)

# Теперь с найденным символом
for char in text:
    if char == "c":
        print("Нашли 'c'!")
        break
else:
    print("'c' не найден")
# Вывод: Нашли 'c'! (break сработал, else не выполнился)

Переменная цикла

Переменная цикла существует и после завершения цикла:

for letter in "ABC":
    pass
print(letter)  # C (последнее значение)

⚠️ Важно: ℹ️ Замечание: В этом уроке мы перебираем строки посимвольно и используем range() для повторения действий N раз. for также умеет перебирать списки, кортежи и другие коллекции — они будут подробно разобраны в уроке 21 (списки) и уроке 23 (кортежи).