Циклы

Одна итерация - это выполнение цикла 1 раз

Год - это 12 итераций: январь, февраль...

for

for ii in range(10):
    print('Python is awesome!')

for название_переменной_цикла in range( количество_повторений ):

блок кода

Цикл в питоне всегда начинается с нуля

for _ in range(5):
    print('Python - awesome!')

for range

Цикл for и функция range в Python

range — это функция, которая создаёт последовательность чисел.

Её часто используют в цикле for, чтобы выполнять повторяющиеся действия.

Как работает range:

1 range(конец)

Создаёт последовательность от 0 до числа конец (не включая его).

for i in range(5):
    print(i)
# Вывод: 0, 1, 2, 3, 4

2 range(начало, конец)

Создаёт последовательность от числа начало до числа конец (не включая его).

for i in range(2, 6):
    print(i)
# Вывод: 2, 3, 4, 5

Количество итераций при использовании 2х параметров рассчитывается как конец минус начало 6 - 2 = 4

Всего - 4 итерации

3 range(начало, конец, шаг)

Создаёт последовательность с шагом (может быть положительным или отрицательным).

Пример с положительным шагом:

for i in range(1, 10, 2):
    print(i)
# Вывод: 1, 3, 5, 7, 9

Пример с отрицательным шагом:

for i in range(5, 0, -1):
    print(i)
# Вывод: 5, 4, 3, 2, 1

Отличия:

  • 1 параметр: считает с 0 до указанного числа.
  • 2 параметра: задаёт начало и конец.
  • 3 параметра: добавляет шаг (включая отрицательный, для обратного отсчёта).

Это очень удобно для создания циклов!


while

Цикл while называют циклом с предусловием

Цикл while может не выполнятся ни разу

for повторяется определённое количество раз counting loops
while повторяется неопределённое количество раз ( возможно, бесконечно ) conditional loops

while условие:

блок кода

Блок кода под двоеточием с отступом называется телом цикла

i = 0
while i < 10:
    print('Привет')
    i += 1

num = int(input())
while num != -1:
    print('Квадрат вашего числа равен:', num * num)
    num = int(input())

Цикл for всегда можно заменить на цикл while

text = input()
total = 0
while text != 'stop':
    total += int(text)
    text = input()

print('Сумма чисел равна', total)

Бесконечные циклы можно прерывать с помощью оператора прерывания break

Обработка цифр числа

n = int(input())
while n != 0:
    last_digit = n % 10
    n = n // 10

break, continue

Для прерывания цикла используется оператор break

while True:
    break

Следующий код проверяет, число простое или не простое (составное)

num = int(input())
flag = True

for i in range(2, int(num ** 0.5) + 1):
    if num % i == 0:
        flag = False
        break

if num > 1 and flag == True:
    print('Число простое')
else:
    print('Число составное')

Для перехода к следующей итерации цикла используется оператор continue

for i in range(10):
    continue
    print("никогда") # эта строка не будет выполнена

else

numbers = [1, 2, 3, 4, 5]

for num in numbers:
    if num == 3:
        print("Нашли число 3!")
        break  # Останавливаем цикл, если нашли 3
else:
    # Срабатывает, только если цикл не был прерван
    print("Число 3 не найдено.")

Источник stepik.org