Циклы
Цикл for
# По списку
for item in [1, 2, 3]: # цикл по элементам
print(item) # вывод в консоль
# По строке
for char in "Python": # цикл по элементам
print(char) # вывод в консоль
# По range
for i in range(5): # цикл по элементам
print(i) # вывод в консоль
# По словарю
for key in user: ... # цикл по элементам
for val in user.values(): ... # цикл по элементам
for key, val in user.items(): ... # цикл по элементам
# По нескольким последовательностям
for name, age in zip(names, ages): # цикл по элементам
print(f"{name}: {age}") # вывод в консоль
# С индексом
for i, val in enumerate(["a", "b", "c"]): # цикл по элементам
print(i, val) # вывод в консоль
Цикл while
i = 0 # числовое значение
while i < 5: # цикл с предусловием
print(i) # вывод в консоль
i += 1
# Бесконечный цикл с break
while True: # цикл с предусловием
cmd = input("> ") # ввод данных
if cmd == "exit": # условие
break # досрочный выход из цикла
if cmd == "help": # условие
continue # переход к следующей итерации
print(f"Вы ввели: {cmd}") # вывод в консоль
break / continue / else
# break — выход из цикла
for i in range(10): # цикл по элементам
if i == 5: # условие
break # досрочный выход из цикла
print(i) # 0 1 2 3 4
# continue — переход к следующей итерации
for i in range(5): # цикл по элементам
if i == 2: # условие
continue # переход к следующей итерации
print(i) # 0 1 3 4
# else в цикле — выполняется, если break не сработал
for n in range(2, 10): # цикл по элементам
for x in range(2, n): # цикл по элементам
if n % x == 0: # условие
break # досрочный выход из цикла
else: # иначе
print(n, "простое число") # вывод в консоль
Генераторы списков (повторение)
# Базовая форма
[expr for item in iterable]
# С условием
[expr for item in iterable if condition]
# С if-else
[expr_if_true if condition else expr_if_false for item in iterable]
# Примеры
squares = [x**2 for x in range(10)] # последовательность чисел
evens = [x for x in range(20) if x % 2 == 0] # последовательность чисел
labels = ["чёт" if x % 2 == 0 else "нечёт" for x in range(5)] # последовательность чисел
Функция range
range(stop) # 0, 1, ..., stop-1
range(start, stop) # start, ..., stop-1
range(start, stop, step) # последовательность чисел
list(range(5)) # [0, 1, 2, 3, 4]
list(range(2, 7)) # [2, 3, 4, 5, 6]
list(range(0, 10, 2)) # [0, 2, 4, 6, 8]
list(range(5, 0, -1)) # [5, 4, 3, 2, 1]
Итерация по нескольким коллекциям
# zip — параллельная
for a, b in zip(list1, list2): # цикл по элементам
print(a, b) # вывод в консоль
# enumerate — с индексом
for idx, val in enumerate(collection): # цикл по элементам
print(idx, val) # вывод в консоль
# reversed — обратный порядок
for item in reversed(lst): # цикл по элементам
print(item) # вывод в консоль
# sorted — сортированный
for item in sorted(lst): # цикл по элементам
print(item) # вывод в консоль