Python с нуля: Циклы for и while

Урок посвящен работе с циклами и операторами внутри них в языке Python. Рассмотрим циклы for и while, а также операторы break и continue.

Циклы

Циклы — конструкции для многократного выполнения кода. В Python основные типы циклов: for и while.

Цикл for

Цикл for перебирает элементы последовательности. Синтаксис:

for i in range(6):
    print(i)

Здесь:

  • for — ключевое слово.
  • i — переменная, принимающая значения из последовательности.
  • range(6) — функция, генерирующая последовательность чисел от 0 до 5.
  • print(i) — код, выполняемый в каждой итерации. Отступы определяют блок кода внутри цикла.

range() принимает один, два или три аргумента:

  • Один аргумент: Верхняя граница последовательности (исключая её). Последовательность начинается с 0. Например, range(6) создаёт 0, 1, 2, 3, 4, 5.
  • Два аргумента: Нижняя и верхняя границы (исключая верхнюю). Например, range(1, 6) создаёт 1, 2, 3, 4, 5.
  • Три аргумента: Нижняя граница, верхняя (исключая её) и шаг. Например, range(1, 6, 2) создаёт 1, 3, 5.

Перебор строк и поиск символа

Цикл for перебирает символы строки:

string = "Hello world!"
for i in string:
    print(i * 3)

Пример поиска символа «!» в строке:

string = "Hello world!"
count = 0
for i in string:
    if i == "!":
        count += 1
print(f"Count: {count}")

Цикл while

Цикл while выполняется пока условие истинно:

i = 5
while i < 15:
    print(i)
    i += 2

Цикл выполняется пока i меньше 15. В каждой итерации выводится i, затем к нему добавляется 2.

Бесконечный цикл и его предотвращение

Бесконечный цикл:

is_running = True
while is_running:
    # Бесконечный цикл, если не изменить is_running
    pass

Пример корректного использования while:

enter_data = True
while enter_data:
    data = input("Enter data (type 'stop' to exit): ")
    if data == "stop":
        enter_data = False

Операторы break и continue

Оператор break

break прерывает цикл:

for i in range(1, 12):
    if i == 5:
        break
    print(i)

Оператор continue

continue пропускает текущую итерацию:

for i in range(1, 12):
    if i % 2 == 0:
        continue
    print(i)

Поиск символа с break

Улучшенный поиск символа в строке с использованием break:

found = None
string = "Hello"
for i in string:
    if i == "l":
        found = True
        break
    else:
        found = False

print(found)

Изучены циклы for и while, а также операторы break и continue. Они являются основой для создания многих программ на Python.

Что будем искать? Например,программа