Урок 02

Циклы и списки

Повторение действий и работа с коллекциями

Что прошли

Урок 1 — фундамент

  • Переменные и типы данных
  • print() и input()
  • Арифметика и f-строки
  • Сравнение значений
  • Логические операторы
  • if / elif / else

Сегодня

Циклы и списки

while
for · range()
break · continue
создание списков
срезы и методы
перебор коллекций

Мотивация

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

Программа выполняет один и тот же блок кода многократно, пока выполняется условие или пока не пройдёт по всей коллекции.

Без цикла

Сто строк кода

print("Привет") print("Привет") print("Привет") # ... × 100
С циклом

Три строки

for i in range(100): print("Привет")

Тема 14

Цикл while

Повторяет блок кода, пока условие истинно

i = 1 while i <= 5: print(i) i = i + 1
1 2 3 4 5
Структура

Условие → блок → возврат к условию. Когда условие становится ложным, цикл завершается.

Шаг за шагом

Как работает while

Каждая итерация: проверка условия → выполнение блока → возврат

i = 1 while i <= 5: print(i) i = i + 1
i i ≤ 5 print
1True1
2True2
3True3
4True4
5True5
6Falseвыход

Пример

Сумма от 1 до 10

total = 0 i = 1 while i <= 10: total = total + i i = i + 1 print(total)
55

Переменная-аккумулятор накапливает результат, пока выполняется условие.

Внимание

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

Если условие никогда не становится ложным, программа зависает

i = 1 while i <= 5: print(i) # забыли увеличить i
Если программа зависла

Прервите выполнение через Ctrl + C в терминале или кнопкой остановки в Jupyter.

Вопрос

Что выведет код?

x = 5 while x > 0: print(x) x = x - 1
A1 2 3 4 5
B5 4 3 2 1
C5 4 3 2 1 0
DБесконечный цикл

Подумайте минуту →

Тема 15

Цикл for

Повторение известное число раз

for i in range(5): print(i)
0 1 2 3 4

Переменная i принимает значения из последовательности по очереди.

Шаг за шагом

Как работает for

range() выдаёт значения, цикл выполняет тело для каждого

for i in range(1, 6): print(i * i)
Итерация i i × i
111
224
339
4416
5525

Цикл прекращается автоматически, когда последовательность исчерпана.

range()

Как работает 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.

Пример

Сумма с помощью for

total = 0 for i in range(1, 11): total = total + i print(total)
55

Тот же результат, что и в while-версии, но короче и без ручного управления счётчиком.

Вопрос

Когда использовать for, а когда while?

Afor - когда заранее известно число итераций
Bwhile - до выполнения некоторого условия
CТолько while - универсальный
DОба варианта A и B верны

Подумайте минуту →

Тема 16

break и continue

Управление потоком внутри цикла

break

Выход из цикла

Полностью прерывает цикл. Все оставшиеся итерации пропускаются.

continue

Следующая итерация

Пропускает оставшийся код в текущей итерации и переходит к следующей.

break

Выход из цикла

for i in range(10): if i == 5: break print(i)
0 1 2 3 4

Когда i становится равным 5, цикл прерывается. Числа 5–9 не выводятся.

continue

Пропуск итерации

for i in range(10): if i % 2 == 0: continue print(i)
1 3 5 7 9

Чётные числа пропускаются. Цикл переходит к следующей итерации, минуя print.

Тема 17

Списки

Упорядоченная коллекция элементов

numbers = [1, 2, 3, 4, 5] fruits = ["яблоко", "груша", "слива"] mixed = [1, "two", 3.0, True] empty = []
Замечание

Список может содержать элементы разных типов. Порядок элементов сохраняется.

Доступ

Доступ по индексу

Индексация начинается с нуля

0"яблоко"-3
1"груша"-2
2"слива"-1
fruits = ["яблоко", "груша", "слива"] print(fruits[0]) # яблоко print(fruits[2]) # слива print(fruits[-1]) # слива (последний) print(fruits[-2]) # груша (предпоследний)

Срезы

Slicing

list[start:end:step] — конец не включается

nums = [10, 20, 30, 40, 50] nums[1:3] # [20, 30] nums[:2] # [10, 20] nums[3:] # [40, 50] nums[::2] # [10, 30, 50] nums[::-1] # [50, 40, 30, 20, 10]

Срез возвращает новый список. Исходный не меняется.

Тема 18

Основные методы

Метод Действие
list.append(x) Добавить элемент в конец
list.remove(x) Удалить первое вхождение x
list.pop() Удалить и вернуть последний
list.sort() Отсортировать на месте
list.reverse() Перевернуть на месте
len(list) Длина (это функция)

Вопрос

Что выведет код?

nums = [1, 2, 3, 4, 5] print(nums[1:4])
A[1, 2, 3]
B[2, 3, 4]
C[2, 3, 4, 5]
D[1, 2, 3, 4]

Подумайте минуту →

Тема 19

Перебор коллекций

for напрямую по списку, без индексов

fruits = ["яблоко", "груша", "слива"] for fruit in fruits: print(fruit)
яблоко груша слива

Переменная fruit принимает по очереди значения каждого элемента списка.

Бонус

Перебор строки

Строка ведёт себя как последовательность символов

word = "Python" for letter in word: print(letter)
P y t h o n

Доступ по индексу и срезы для строк работают так же, как для списков.

Практика 1

Сумма чётных чисел

15:00
  1. 1 Запросить целое число N
  2. 2 С помощью for и range пройти от 1 до N
  3. 3 Прибавлять только чётные числа к сумме
  4. 4 Вывести итоговую сумму

Подсказка: проверка чётности через i % 2 == 0.

Решение

Разбор решения 1

n = int(input("Введите число N: ")) total = 0 for i in range(1, n + 1): if i % 2 == 0: total = total + i print(f"Сумма чётных от 1 до {n}: {total}")
ввод N цикл for фильтр % накопление вывод

Практика 2

Анализ оценок

15:00
grades = [3, 5, 4, 2, 5, 4, 3, 5, 4, 5]
  1. 1 Подсчитать количество отличных оценок (5)
  2. 2 Вычислить среднее арифметическое
  3. 3 Вывести оба значения

Подсказка: sum(list) и len(list) упрощают задачу.

Решение

Разбор решения 2

grades = [3, 5, 4, 2, 5, 4, 3, 5, 4, 5] excellent = 0 for grade in grades: if grade == 5: excellent = excellent + 1 average = sum(grades) / len(grades) print(f"Отличных оценок: {excellent}") print(f"Средний балл: {average}")
список счётчик sum / len вывод

Практические задания

Jupyter Notebook

10 задач по темам урока. Откройте в Jupyter или VS Code и выполните самостоятельно.

.ipynb
lesson2_tasks.ipynb
10 практических заданий
Скачать RU Yuklab olish UZ Download EN

Итоги

Итоги урока

  • Цикл while и условие выхода
  • Цикл for с range()
  • break и continue
  • Создание и доступ к спискам
  • Срезы и шаги
  • Методы списка: append, remove, pop, sort
  • Перебор списка через for
  • Строка как последовательность
Следующий урок

Функции и словари - организация кода и структуры данных «ключ-значение»

Вопросы?

Telegram: @gokalqurt

Python · Урок 2
RU UZ EN
1 / 31