Урок 02
Повторение действий и работа с коллекциями
Что прошли
Сегодня
Мотивация
Программа выполняет один и тот же блок кода многократно, пока выполняется условие или пока не пройдёт по всей коллекции.
Тема 14
Повторяет блок кода, пока условие истинно
Условие → блок → возврат к условию. Когда условие становится ложным, цикл завершается.
Шаг за шагом
Каждая итерация: проверка условия → выполнение блока → возврат
| i | i ≤ 5 | |
|---|---|---|
| 1 | True | 1 |
| 2 | True | 2 |
| 3 | True | 3 |
| 4 | True | 4 |
| 5 | True | 5 |
| 6 | False | выход |
Пример
Переменная-аккумулятор накапливает результат, пока выполняется условие.
Внимание
Если условие никогда не становится ложным, программа зависает
Прервите выполнение через Ctrl + C в терминале или кнопкой остановки в Jupyter.
Вопрос
1 2 3 4 55 4 3 2 15 4 3 2 1 0Подумайте минуту →
Тема 15
Повторение известное число раз
Переменная i принимает значения из последовательности по очереди.
Шаг за шагом
range() выдаёт значения, цикл выполняет тело для каждого
| Итерация | i | i × i |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 2 | 4 |
| 3 | 3 | 9 |
| 4 | 4 | 16 |
| 5 | 5 | 25 |
Цикл прекращается автоматически, когда последовательность исчерпана.
range()
Создаёт последовательность чисел
| Вызов | Последовательность |
|---|---|
| range(5) | 0, 1, 2, 3, 4 |
| range(1, 6) | 1, 2, 3, 4, 5 |
| range(0, 10, 2) | 0, 2, 4, 6, 8 |
| range(10, 0, -1) | 10, 9, 8, ..., 1 |
Конечное значение не включается в диапазон. range(5) даёт числа от 0 до 4.
Пример
Тот же результат, что и в while-версии, но короче и без ручного управления счётчиком.
Вопрос
Подумайте минуту →
Тема 16
Управление потоком внутри цикла
Полностью прерывает цикл. Все оставшиеся итерации пропускаются.
Пропускает оставшийся код в текущей итерации и переходит к следующей.
break
Когда i становится равным 5, цикл прерывается. Числа 5–9 не выводятся.
continue
Чётные числа пропускаются. Цикл переходит к следующей итерации, минуя print.
Тема 17
Упорядоченная коллекция элементов
Список может содержать элементы разных типов. Порядок элементов сохраняется.
Доступ
Индексация начинается с нуля
Срезы
list[start:end:step] — конец не включается
Срез возвращает новый список. Исходный не меняется.
Тема 18
| Метод | Действие |
|---|---|
| list.append(x) | Добавить элемент в конец |
| list.remove(x) | Удалить первое вхождение x |
| list.pop() | Удалить и вернуть последний |
| list.sort() | Отсортировать на месте |
| list.reverse() | Перевернуть на месте |
| len(list) | Длина (это функция) |
Вопрос
[1, 2, 3][2, 3, 4][2, 3, 4, 5][1, 2, 3, 4]Подумайте минуту →
Тема 19
for напрямую по списку, без индексов
Переменная fruit принимает по очереди значения каждого элемента списка.
Бонус
Строка ведёт себя как последовательность символов
Доступ по индексу и срезы для строк работают так же, как для списков.
Практика 1
Подсказка: проверка чётности через i % 2 == 0.
Решение
Практика 2
Подсказка: sum(list) и len(list) упрощают задачу.
Решение
Практические задания
10 задач по темам урока. Откройте в Jupyter или VS Code и выполните самостоятельно.
Итоги
Функции и словари - организация кода и структуры данных «ключ-значение»
Telegram: @gokalqurt