Общий синтаксис
# Iterate over a sequence
for item in sequence:
# body
pass
# Iterate over a range of numbers
for i in range(n):
# body
pass
# Loop with break/continue/else
for item in sequence:
if condition:
break
if other_condition:
continue
else:
# runs only if no break occurred
pass
Ключевые слова циклов
| Ключевое слово | Описание | Пример |
|---|---|---|
for |
Начинает цикл по элементам итерируемого объекта. | for letter in "abc": |
in |
Связывает переменную цикла с последовательностью. | for x in range(5): |
break |
Немедленно прерывает выполнение цикла. | if x == 0: break |
continue |
Пропускает оставшуюся часть текущей итерации. | if x < 0: continue |
else |
Блок после for, выполняемый при естественном завершении цикла. |
for ... else: ... |
Функция range()
| Вызов | Описание | Пример результата |
|---|---|---|
range(5) |
Числа от 0 до 4 с шагом 1. |
0, 1, 2, 3, 4 |
range(2, 6) |
Числа от 2 до 5 с шагом 1. |
2, 3, 4, 5 |
range(1, 10, 2) |
Нечётные числа от 1 до 9. |
1, 3, 5, 7, 9 |
range(10, 0, -2) |
Числа от 10 до 2 с шагом -2. |
10, 8, 6, 4, 2 |
range(-4, -8, -1) |
Отрицательные числа от -4 до -7. |
-4, -5, -6, -7 |
Встроенные функции enumerate() и zip()
Эти функции не входят в исходную лекцию, но являются стандартным инструментом Python-разработчика.
📄 examples/enumerate_demo.py
text = "Python"
for index, letter in enumerate(text):
print(f"{index}: {letter}")
# Output:
# 0: P
# 1: y
# 2: t
# 3: h
# 4: o
# 5: n
📄 examples/zip_demo.py
names = ["Anna", "Bob", "Charlie"]
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")
# Output:
# Anna: 85
# Bob: 92
# Charlie: 78
Параметры range()
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
start | int | Начало диапазона (включительно). По умолчанию 0. | нет |
stop | int | Конец диапазона (не включительно). | да |
step | int | Шаг между числами. По умолчанию 1. | нет |
Частые паттерны
📄 examples/pattern_repeat_n.py
# Repeat action n times
n = 3
for _ in range(n):
print("Hello")
# Output:
# Hello
# Hello
# Hello
📄 examples/pattern_sum.py
# Accumulate sum
total = 0
for i in range(1, 11):
total += i
print(total) # 55
📄 examples/pattern_search.py
# Search with for/else
for letter in "Python":
if letter == "x":
print("Found")
break
else:
print("Not found") # printed
Проверить по документации: функции
range(), enumerate(), zip(), а также операторы break, continue и for описаны в официальной документации Python. Ссылки — в разделе Ресурсы.