Циклы (`for`, `while`, `do-while`)

Материал из m6a
Перейти к: навигация, поиск

Циклы позволяют повторять блок кода несколько раз, что делает их незаменимыми для автоматизации задач и обработки данных.

Типы циклов

Существует три основных типа циклов:

  • `for`
  • `while`
  • `do-while` (в Python имитируется)

`for` цикл

  • Описание: `for` цикл используется для перебора элементов в последовательности (список, строка, кортеж и т.д.).
  • Синтаксис:
   ```python
   for элемент in последовательность:
       # Блок кода, выполняемый для каждого элемента
   ```
  • Примеры:
    • Перебор списка:
       ```python
       fruits = ["яблоко", "банан", "вишня"]
       for fruit in fruits:
           print(fruit)
       ```

Вывод:

       ```
       яблоко
       банан
       вишня
       ```
    • Перебор строки:
       ```python
       text = "Hello"
       for char in text:
           print(char)
       ```

Вывод:

       ```
       H
       e
       l
       l
       o
       ```
    • Использование `range()` для итерации по числам:
       ```python
       for i in range(5):
           print(i)
       ```

Вывод:

       ```
       0
       1
       2
       3
       4
       ```
       `range(start, stop, step)`:
       *   `start` (необязательный): Начальное значение (по умолчанию 0).
       *   `stop`: Конечное значение (не включается).
       *   `step` (необязательный): Шаг (по умолчанию 1).
    • Управление циклом:
   *   `break`: Прерывает цикл.
   *   `continue`: Переходит к следующей итерации.
   ```python
   for i in range(10):
       if i == 5:
           break  # Прерывает цикл, когда i равно 5
       print(i)
   for i in range(10):
       if i % 2 == 0:
           continue  # Переходит к следующей итерации, если i четное
       print(i)
   ```

`while` цикл

  • Описание:
   `while` цикл повторяет блок кода, пока условие истинно.
  • Синтаксис:
   ```python
   while условие:
       # Блок кода, выполняемый, пока условие истинно
   ```
  • Примеры:
   ```python
   i = 0
   while i < 5:
       print(i)
       i += 1
   ```

Вывод:

   ```
   0
   1
   2
   3
   4
   ```
  • Бесконечный цикл (требует осторожности):
   ```python
   while True:
       print("Этот цикл будет выполняться бесконечно")
       break  # Используйте break для выхода
   ```
  • Управление циклом:
    • `break`: Прерывает цикл.
    • `continue`: Переходит к следующей итерации.
   ```python
   i = 0
   while i < 10:
       i += 1
       if i == 5:
           continue  # Пропускает вывод 5
       if i == 8:
           break  # Выходит из цикла, когда i равно 8
       print(i)
   ```

`do-while` цикл

  • Описание: `do-while` цикл выполняет блок кода хотя бы один раз, а затем повторяет его, пока условие истинно. В Python нет встроенного `do-while` цикла, но его можно имитировать.
  • Имитация в Python:
   ```python
   while True:
       # Блок кода, выполняемый хотя бы один раз
       ...
       if условие:
           break  # Выход из цикла, если условие выполнено
   ```
  • Пример:
   ```python
   i = 0
   while True:
       print(i)
       i += 1
       if i >= 5:
           break
   ```

Вывод:

   ```
   0
   1
   2
   3
   4
   ```

Вложенные циклы

Циклы могут быть вложенными друг в друга.

  • **Пример:**
   ```python
   for i in range(3):
       for j in range(3):
           print(i, j)
   ```
   Вывод:
   ```
   0 0
   0 1
   0 2
   1 0
   1 1
   1 2
   2 0
   2 1
   2 2
   ```

Практическое применение

  • **Обработка элементов списка:**
   ```python
   numbers = [1, 2, 3, 4, 5]
   for number in numbers:
       print(number * 2)
   ```
  • **Повторение операций, пока не будет достигнут определенный результат:**
   ```python
   import random
   number = random.randint(1, 100)
   guess = 0
   while guess != number:
       guess = int(input("Угадайте число от 1 до 100: "))
       if guess < number:
           print("Слишком мало")
       elif guess > number:
           print("Слишком много")
       else:
           print("Вы угадали!")
   ```
  • **Создание таблиц:**
   ```python
   for i in range(1, 6):
       for j in range(1, 6):
           print(i * j, end='\t')
       print()
   ```

Ключевые моменты

  • `for`: Идеален для перебора элементов в последовательностях.
  • `while`: Подходит, когда количество итераций неизвестно заранее и зависит от условия.
  • `do-while` (имитация): Гарантирует выполнение кода хотя бы один раз.
  • `break`: Для выхода из цикла.
  • `continue`: Для перехода к следующей итерации.
  • Вложенные циклы: Для решения задач, требующих многократного повторения операций.