Справочник Python

Полное руководство по языку на русском

Циклы

Цикл 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)  # вывод в консоль