Learnly
Python с нуля/Глава 5/Урок 2

Циклы: программа повторяет действия

Циклы: программа повторяет действия

Одна из главных сил программирования, возможность делать что-то много раз без повторения кода. Для этого существуют циклы.

Зачем нужны циклы

Представь, что нужно поздороваться с каждым из 100 пользователей. Писать print 100 раз, безумие. Цикл делает это за тебя.

Или представь автоматический обзвон: программа берёт следующий номер из списка, звонит, записывает результат, берёт следующий, и так пока список не закончится. Это цикл.

Цикл for: когда знаешь сколько раз

Используй for когда нужно пройтись по каждому элементу коллекции:

fruits = ["яблоко", "банан", "вишня"]

for fruit in fruits:
    print(fruit)

Читается вслух: "для каждого фрукта в списке fruits, напечатай его".

Результат:

яблоко
банан
вишня

range(), повторить N раз

Если нужно просто повторить действие определённое число раз:

for i in range(5):
    print(f"Шаг {i}")

range(5) создаёт последовательность 0, 1, 2, 3, 4. Обрати внимание, начинается с нуля.

# range(начало, конец), конец не включается
for i in range(1, 6):
    print(i)   # 1, 2, 3, 4, 5

Цикл while: когда не знаешь сколько раз

Используй while когда нужно повторять пока выполняется условие:

attempts = 0
password = ""

while password != "secret123":
    password = input("Введи пароль: ")
    attempts += 1

print(f"Правильно! Попыток: {attempts}")

Цикл будет крутиться сколько угодно раз, пока пользователь не введёт правильный пароль.

break и continue, управление циклом

# break, выйти из цикла досрочно
for i in range(10):
    if i == 5:
        break          # стоп, выходим
    print(i)           # напечатает 0, 1, 2, 3, 4

# continue, пропустить эту итерацию
for i in range(10):
    if i % 2 == 0:
        continue       # пропускаем чётные
    print(i)           # напечатает 1, 3, 5, 7, 9

Цикл внутри цикла

for i in range(1, 4):
    for j in range(1, 4):
        print(f"{i} × {j} = {i*j}")
    print("---")

Внешний цикл делает 3 итерации, на каждой внутренний тоже делает 3. Итого 9 строк + 3 разделителя.

💡 Главная мысль: for, когда знаешь по чему итерироваться. while, когда нужно крутиться пока выполняется условие. Циклы, это то, что делает компьютеры полезными: они не устают повторять действия.