План урока на тему:

Списки в Python

Информатика8 класс63 раздела
Списки в Python

Информатика · 8 класс · Открытие нового · 45 мин

Списки в Python: от строк к изменяемым структурам данных

Цели и задачи

  • Цель по SMART: к концу урока научиться создавать списки в Python, обращаться к их элементам по положительным и отрицательным индексам, использовать срезы, методы append() и sort(), а также применять len() и count() при решении практической задачи.
  • Установить аналогию между индексацией и срезами строк и списков, осознать главное отличие списка — возможность изменять его элементы.
  • Научиться прогнозировать результат выполнения программ со списками и объяснять полученный вывод.
  • Развивать алгоритмическое мышление, умение декомпозировать задачу, находить и исправлять ошибки в коде.
  • Формировать ответственное отношение к результату программирования и готовность выбирать уровень сложности задания.

Планируемые результаты

Личностные

  • Понимать прикладную ценность списков при создании плейлистов, каталогов, электронных очередей и других программных систем.
  • Проявлять настойчивость при поиске и исправлении ошибок в программном коде.
  • Осознавать готовность к самостоятельному выбору уровня сложности практического задания.
  • Формировать интерес к алгоритмическому мышлению и возможностям программирования.

Метапредметные

  • Переносить известные способы работы со строками на новую структуру данных — список.
  • Декомпозировать практическую задачу на последовательность операций со списком.
  • Прогнозировать результат выполнения кода до его запуска и сопоставлять прогноз с фактическим результатом.
  • Находить синтаксические и логические ошибки, проверять и корректировать собственное решение.
  • Аргументированно представлять результат работы в паре или индивидуально.

Предметные

  • Знать, что список в Python является упорядоченной изменяемой структурой данных.
  • Уметь создавать списки с помощью квадратных скобок, а также создавать пустые списки.
  • Уметь обращаться к элементам списка по положительным и отрицательным индексам, получать срезы.
  • Уметь изменять элементы списка и добавлять значения методом append().
  • Уметь применять методы sort() и count(), функцию len() и цикл for при обработке списков.

Универсальные учебные действия (УУД)

Личностные УУД

  • Осознают личную ответственность за точность написания и проверки программного кода.
  • Определяют личный уровень понимания индексации и методов списков через приём «Светофор».
  • Проявляют интерес к использованию списков в будущих учебных и профессиональных проектах.
  • Принимают право одноклассника выбрать индивидуальную работу или работу в паре.

Регулятивные УУД

  • Формулируют цель работы со списками на основе проблемной ситуации.
  • Планируют последовательность действий при решении задачи «Кинозал».
  • Проверяют прогноз вывода программы фактическим запуском кода.
  • Обнаруживают ошибку в индексе или методе и вносят коррективы.
  • Оценивают степень освоения нового материала и определяют дальнейший шаг.

Познавательные УУД

  • Сравнивают строки и списки по признакам упорядоченности, индексации, срезов и изменяемости.
  • Выделяют существенный признак списка — возможность менять отдельные элементы.
  • Анализируют программный код и моделируют состояние списка после каждой операции.
  • Используют справочную карточку «Методы строк vs Методы списков».
  • Строят причинно-следственную связь между индексом элемента и результатом операции.

Коммуникативные УУД

  • Формулируют и аргументируют предположение о результате выполнения программы.
  • Обсуждают в парах различия между append() и изменением элемента по индексу.
  • Распределяют действия при выполнении практической задачи «Кинозал».
  • Задают уточняющие вопросы и корректно комментируют решение одноклассника.
  • Представляют готовый код классу с объяснением последовательности действий.

Подготовка учителя к уроку

  • Подготовить презентацию «Списки: от строк к массивам» с примерами строк, списков, индексов, срезов и методов append(), sort(), len(), count().
  • Настроить компьютеры с установленной средой Python IDLE или Thonny и проверить запуск короткой программы со списком.
  • Распечатать шпаргалку «Методы строк vs Методы списков» — по одному экземпляру на каждого ученика.
  • Распечатать карточку с задачей «Кинозал» — по одному экземпляру на пару и несколько дополнительных экземпляров для индивидуальной работы.
  • Вывести на доску или экран проблемную ситуацию с плейлистом: playlist = "Трек1 Трек2 Трек3 Трек4 Трек5".
  • Подготовить на отдельном слайде код для приёма «Живой код»: nums = [5, 2, 9, 1]; print(nums[1]); nums[2] = 100; print(nums); nums.append(7); print(len(nums)).
  • Подготовить стикеры красного, жёлтого и зелёного цветов — по одному на каждого ученика.
  • Разместить на доске памятку с нумерацией индексов списка слева направо и справа налево.
  • Проверить возможность демонстрации экрана учителя и передачи готового кода от пары к компьютеру учителя.

Ход урока

Этап 1. Организационный момент (2 мин)

Цель этапа: проверить готовность класса и включить учащихся в работу с программным кодом.
Время
Действие учителя
Действие учеников
1 мин
Учитель приветствует класс: "Здравствуйте, ребята. Проверьте, пожалуйста, готовность к уроку: тетрадь, ручка, компьютер и открытая среда Python. Сегодня нам понадобится не только умение писать код, но и готовность проверять свои гипотезы. Если программа выдаст ошибку, мы будем воспринимать её как подсказку для отладки, а не как неудачу."
Проверяют наличие тетради и ручки, включают компьютер, запускают IDLE или Thonny, открывают рабочее окно.
1 мин
Учитель показывает на доске тему урока и говорит: "Запишите тему: «Списки в Python». Рядом оставьте место для примеров кода. В течение урока мы проверим, почему списки удобнее строк для хранения изменяющихся данных."
Записывают дату и тему урока, готовят рабочую область для примеров.
Завершение этапа: учитель подводит итог: "Рабочие места готовы, среда программирования запущена. Теперь посмотрим на задачу, с которой сталкивается разработчик приложения."

Этап 2. Мотивация. Мотивирующий крючок (5 мин)

Цель этапа: создать проблемную ситуацию и показать необходимость новой структуры данных.
Время
Действие учителя
Действие учеников
2 мин
Учитель демонстрирует на экране строку: playlist = "Трек1 Трек2 Трек3 Трек4 Трек5" и обращается к классу: "Представьте, что вы создаёте приложение для плейлиста. Пользователь сообщил, что «Трек3» ему больше не нравится. Как удалить только этот трек? Попробуйте предложить решение средствами строк. Можно ли сделать это одной понятной операцией?"
Рассматривают строку, предлагают варианты: использовать replace(), собрать новую строку конкатенацией, разделить строку на части. Объясняют, что решения получаются громоздкими и зависят от текста трека.
2 мин
Учитель продолжает: "Теперь представьте другую задачу: нужно добавить новый трек в конец плейлиста, а затем расположить все треки по алфавиту. Какой операцией это сделать? Строка хранит всё содержимое как единый объект, поэтому изменение отдельных частей неудобно. Давайте зафиксируем проблему: нам нужна структура, в которой элементы хранятся отдельно и которую можно изменять."
Обсуждают в парах 30 секунд, затем формулируют вывод: «Строка неизменяема и неудобна для добавления и удаления отдельных элементов».
1 мин
Учитель показывает слайд с вопросом: "Какой инструмент Python создан специально для хранения набора отдельных элементов, которые можно менять? Сегодня мы найдём ответ и проверим его на задаче с кинозалом."
Формулируют предположение: «Нужен список». Записывают проблемный вопрос: «Как создавать и изменять списки в Python?».
Завершение этапа: учитель подводит итог: "Мы увидели ограничение строк: они позволяют получать символы и срезы, но не позволяют заменить отдельный символ на месте. Сейчас вспомним знакомые операции со строками и перенесём их на новую структуру."

Этап 3. Актуализация знаний о строках (5 мин)

Цель этапа: актуализировать индексацию, срезы и функцию len() как опору для открытия свойств списков.
Время
Действие учителя
Действие учеников
2 мин
Учитель выводит на экран строку s = "Python" и говорит: "Вспомним правила, которые сегодня станут опорой. Как получить третий символ строки? Напомните, с какого числа начинается индексация. Как получить символ с конца строки? Запишите ответы в черновике, затем сравните их с соседом."
Записывают и обсуждают варианты: третий символ получают как s[2], последний символ — как s[-1]. Объясняют, что первый индекс равен 0.
2 мин
Учитель спрашивает: "Как получить подстроку с индексами от 1 до 4, не включая индекс 4? Как узнать количество символов? Посмотрите на доску: срез записывается как s[начало:конец], а длина находится функцией len(s)."
Записывают примеры s[1:4] и len(s), проговаривают правило: правая граница среза не включается.
1 мин
Учитель проводит быструю проверку: "Поднимите зелёную карточку, если можете объяснить разницу между индексом и длиной строки; жёлтую — если нужна подсказка." Учитель фиксирует затруднения и уточняет ответы.
Показывают карточку самооценки, формулируют ответы: «Индекс показывает положение элемента, а длина — количество элементов».

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

Зарегистрируйтесь — и откройте план урока по этой теме полностью: цели, ход урока и рефлексия по ФГОС.

Завершение этапа: учитель подводит итог: "Индексация, срезы и len() нам уже знакомы. Предположим, что список унаследует эти возможности. Проверим, какие правила сохранятся, а что изменится принципиально."

Этап 4. Открытие нового знания: список и его операции (9 мин)

Цель этапа: сформировать представление о списке как об упорядоченной изменяемой структуре и освоить базовый синтаксис.
Время
Действие учителя
Действие учеников
3 мин
Учитель показывает на экране примеры: names = ["Иванов", "Петров"]; numbers = [5, 2, 9, 1]; empty = []; another_empty = list(). Учитель говорит: "Список записывается в квадратных скобках, элементы разделяются запятыми. В список можно поместить строки, числа и другие значения. Пустой список создаётся двумя способами. Запишите эти примеры и подчеркните квадратные скобки."
Переписывают примеры в тетрадь, называют элементы списка names: «Иванов» и «Петров», формулируют вывод: «Список хранит несколько элементов отдельно».
2 мин
Учитель демонстрирует: nums[0], nums[2], nums[-1], nums[0:2] и объясняет: "Правила индексации и срезов почти полностью повторяют строки. Первый элемент имеет индекс 0, последний можно получить индексом -1. Срез nums[0:2] содержит элементы с индексами 0 и 1."
Выписывают примеры nums[0], nums[2], nums[-1], nums[0:2], называют ожидаемые элементы по их индексам.
2 мин
Учитель подчёркивает главное отличие: "Посмотрите на строку и список. В списке можно выполнить nums[2] = 100. Элемент с индексом 2 заменится, а сам список изменится. Со строкой такая операция невозможна, потому что строка неизменяема. Добавить элемент в конец можно методом append(): nums.append(7)."
Сравнивают строку и список, записывают определения «изменяемый» и «неизменяемый», объясняют, что append() меняет исходный список.
2 мин
Учитель показывает операции: nums.insert(1, 8), nums.pop(1), nums.sort(), len(nums), nums.count(0) и говорит: "insert() вставляет элемент по индексу, pop() удаляет элемент по индексу, sort() сортирует список, len() возвращает количество элементов, count() считает количество заданных значений. Сегодня в практикуме обязательно применим append(), len() и count(), а остальные методы занесём в шпаргалку."
Записывают назначение методов в кратком виде, задают уточняющие вопросы, сравнивают append() и insert(): «append() добавляет в конец, insert() — в указанное место».

Запись в тетрадях

Список — это упорядоченная изменяемая структура данных. Примеры:
names = ["Иванов", "Петров"]
empty = []
Элемент списка получают по индексу: $a[0]$, последний элемент — $a[-1]$. Срез: $a[начало:конец]$. Основные операции: $a.append(x)$ — добавить элемент в конец; $a.insert(i, x)$ — вставить элемент; $a.pop(i)$ — удалить элемент; $a.sort()$ — отсортировать; $len(a)$ — длина списка; $a.count(x)$ — количество значений x.
Завершение этапа: учитель подводит итог: "Мы установили: индексация и срезы перешли от строк к спискам, но список получил важное преимущество — его элементы можно менять. Проверим это не на словах, а прогнозом результата программы."

Этап 5. Первичное закрепление. «Живой код» (6 мин)

Цель этапа: научиться прогнозировать вывод программы и объяснять изменение списка после каждой операции.
Время
Действие учителя
Действие учеников
3 мин
Учитель выводит код и говорит: "Сейчас работает приём «Живой код». Не запускайте программу. Представьте состояние списка после каждой строки и запишите прогноз. Код такой: nums = [5, 2, 9, 1]; print(nums[1]); nums[2] = 100; print(nums); nums.append(7); print(len(nums)). Сначала подумайте самостоятельно, затем сравните прогноз с соседом."
Самостоятельно записывают предполагаемый вывод, затем сверяют в паре: «2», «[5, 2, 100, 1]», «5». Объясняют, что значение 9 заменилось на 100, а append() добавил ещё один элемент.
2 мин
Учитель запускает код и спрашивает: "Совпал ли прогноз? Почему nums[2] = 100 сработало, хотя похожая замена символа в строке невозможна? Что изменилось после append(7)?"
Сопоставляют прогноз с фактическим выводом, отвечают: «Список изменяемый; элемент с индексом 2 можно заменить. После append() длина списка стала равна 5».
1 мин
Учитель показывает короткое задание: "Назовите выражение, которое вернёт первый элемент, последний элемент и первые два элемента списка nums. Ответы проговорим цепочкой."
Отвечают: «nums[0], nums[-1], nums[0:2]», исправляют неточности друг друга.

Эталон решения

Исходный список: nums = [5, 2, 9, 1]. Выражение nums[1] обращается ко второму элементу и выводит 2. Команда nums[2] = 100 заменяет третий элемент: nums становится [5, 2, 100, 1]. Команда nums.append(7) добавляет 7 в конец: nums становится [5, 2, 100, 1, 7]. Поэтому len(nums) возвращает 5.
Завершение этапа: учитель подводит итог: "Мы научились читать код мысленно и видеть, как список изменяется после каждой команды. Теперь применим эти операции в задаче, похожей на работу настоящего приложения учёта мест в кинозале."

Этап 6. Компьютерный практикум. Задача «Кинозал» (13 мин)

Цель этапа: применить создание списка, индексацию, изменение элементов, append(), len() и count() при решении практической задачи.
Время
Действие учителя
Действие учеников
2 мин
Учитель раздаёт карточки Р-2 и говорит: "Можно работать индивидуально или в паре — выберите удобный формат. В зале десять мест, свободное место обозначаем 0, занятое — 1. Сначала создайте список hall из десяти нулей. Затем последовательно выполните действия карточки и после каждого существенного шага проверяйте содержимое списка."
Выбирают индивидуальную работу или пару, читают условие, создают файл и записывают начало программы: hall = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0].
4 мин
Учитель направляет работу: "Выполните первые три операции. На место №3 приходится индекс 2, поэтому замените hall[2] на 1. Для места №5 используйте индекс 4 и верните туда 0. Помните: номер места начинается с единицы, а индекс — с нуля. Если появится IndexError, проверьте именно соответствие номера места и индекса."
Записывают команды hall[2] = 1 и hall[4] = 0, запускают программу, проверяют список, находят и исправляют ошибки в индексах.
4 мин
Учитель продолжает: "Теперь пришла группа из трёх человек. Добавьте три единицы в конец списка с помощью трёх команд append() или цикла. Затем выведите список мест. После запуска объясните, почему длина списка стала больше десяти: мы добавили новые места в модель кинозала."
Добавляют единицы командами hall.append(1) или с помощью цикла, выполняют print(hall), сравнивают фактический список с ожидаемым.
3 мин
Учитель даёт финальную инструкцию: "Найдите количество свободных мест выражением hall.count(0) и выведите его. Проверьте код по трём критериям: корректные индексы, наличие append(), правильный подсчёт свободных мест. Две пары подготовят код для представления классу."
Записывают print(hall.count(0)), запускают программу, проверяют количество нулей, исправляют ошибки. Две пары передают или демонстрируют готовый код и объясняют его последовательность.

Эталон решения

Один из корректных вариантов решения:
hall = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
hall[2] = 1
hall[4] = 0
hall.append(1)
hall.append(1)
hall.append(1)
print(hall)
print(hall.count(0))
После первых изменений список имеет вид [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]. После добавления трёх единиц его вид: [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1]. Количество свободных мест определяется числом нулей и выводится выражением $hall.count(0)$.
Завершение этапа: учитель подводит итог: "Вы применили список как изменяемую модель реального объекта: места можно занимать, освобождать и добавлять. Важно не путать номер места и индекс элемента. Осталось оценить, какие операции уже стали понятными, а где нужна дополнительная тренировка."

Этап 7. Рефлексия «Светофор» и подведение итогов (3 мин)

Цель этапа: организовать самооценку понимания материала и выявить индивидуальные затруднения.
Время
Действие учителя
Действие учеников
2 мин
Учитель размещает на доске три цвета и объясняет: "Выберите один стикер. Красный означает: «Я запутался в индексах и отрицательных числах». Жёлтый: «Я понял основу, но путаю append() и insert()». Зелёный: «Я могу создать и изменить список, применить методы и готов двигаться дальше». Прикрепите стикер и, если выбрали красный или жёлтый, подпишите конкретный вопрос."
Выбирают цвет, прикрепляют стикер, формулируют затруднение: «Путаю индекс и номер места», «Не понимаю, что возвращает count()», или подтверждают готовность.
1 мин
Учитель задаёт контрольные вопросы: "Как создать пустой список? Как получить последний элемент? Какая команда добавляет значение в конец? Как узнать число свободных мест, если свободные места обозначены нулём?"
Отвечают: «empty = []», «a[-1]», «a.append(x)», «a.count(0)».

Критерии оценивания практической работы

  • «5» — корректно создан список hall из десяти нулей, верно изменены элементы с индексами 2 и 4, добавлены три единицы через append() или цикл, выведены список и количество свободных мест; ученик может объяснить каждую команду.
  • «4» — выполнены все основные действия, но допущена одна исправленная ошибка в индексе, синтаксисе или подсчёте; объяснение кода в целом верное.
  • «3» — создан список и выполнены базовые изменения, но имеются две и более ошибки, исправленные с помощью учителя; назначение отдельных методов объясняется неполно.

Рефлексия

Вопрос для ученика
Цель вопроса
Что нового вы узнали о списках по сравнению со строками?
Выявление понимания главного отличия — изменяемости списка.
Как получить последний элемент списка и почему используется отрицательный индекс?
Проверка освоения индексации и понимания направления отсчёта.
Какая команда добавляет элемент в конец списка, а какая вставляет его по указанному индексу?
Выявление возможной путаницы между append() и insert().
Какую ошибку вы обнаружили или могли бы обнаружить при решении задачи «Кинозал»?
Осознание опыта отладки и выявление точек затруднения в работе с индексами.

Завершающее слово учителя

"Сегодня мы увидели, что список сохраняет знакомые возможности строк — индексацию, срезы и определение длины, но при этом является изменяемым. Мы научились заменять элементы, добавлять значения методом append() и подсчитывать свободные места через count(). Самая частая ошибка — перепутать номер объекта, начинающийся с единицы, и индекс, начинающийся с нуля. Дома вы закрепите операции со списками и поразмышляете, чем список отличается от массива. На следующем уроке мы подробнее обсудим хранение данных и обработку списков."

Домашнее задание

Уровень
Что задать
Зачем
Базовый (обязательный)
Выполнить задание «Любимые цвета»: создать список colors = ["красный", "синий", "зелёный", "жёлтый", "фиолетовый"], добавить в конец цвета «оранжевый» и «розовый», поменять местами первый и второй элементы, вывести итоговый список.
Закрепляет создание списка, append(), обращение к элементам по индексам и изменение элементов; при проверке обратить внимание на индексы 0 и 1.
Средний (повышающий)
Написать программу «Сборка ПК»: создать список components = ["CPU", "GPU"], запросить у пользователя названия ещё двух комплектующих, добавить их методом append(), отсортировать список методом sort() и вывести результат.
Формирует навык работы с вводом, append() и sort(); при проверке смотреть на правильную последовательность: ввод — добавление — сортировка — вывод.
Продвинутый (дополнительный)
Ответить письменно на вопрос «Массив и список — это одно и то же?» и привести один пример сходства и одно различие между списком Python и массивом как объектом программирования.
Развивает умение сравнивать структуры данных и готовит к изучению способов хранения информации в памяти.

Создайте уникальный план урока по своей теме

  • Любая тема, любой уровень
  • Структура по ФГОС
  • 100% уникальный план урока
  • Цели, ход урока, рефлексия
  • Экспорт в PDF и Word
  • Готово за 1 минуту

Другие темы по информатике для 8 класса

Логические операции «и», «или», «не». Решение задач с помощью кругов ЭйлераУпрощение логических выражений. Законы алгебры логикиРазработка несложных алгоритмов с использованием циклов для управления формальными исполнителямиШестнадцатеричная система счисления и переводы; Восьмеричная система счисления и переводы; Двоичная система счисления. Перевод целых чисел от 0 до 1024; Перевод в десятичную систему чисел, записанныхЛогические высказывания, операции и их истинностьПрименение квадратных уравнений для поиска основания системы счисленияВысказывание. Логические операцииТренинги, на которых разбираются типичные опасные ситуации и алгоритмы действий в них (пожар, травма, потеря сознания)Истинность составного высказывания по значениям элементарныхЛогические выражения. Правила записи логических выражений. Таблица истинностиФормальное исполнение алгоритмаДвоичная система счисления. Перевод целых чисел от 0 до 1024; Восьмеричная система счисления и переводы; Шестнадцатеричная система счисления и переводы

Чем удобны планы уроков Нейрум

  • Готовый план, не набросокЦели, ход урока, планируемые результаты, рефлексия — всё по структуре ФГОС, открыли и пошли вести.
  • План урока или техкартаОдин материал — два формата экспорта в PDF. Скачали то, что нужно завучу.
  • Свой план урока за минутуНе нашли нужный? ИИ-конструктор напишет план урока по вашей теме, классу и типу урока.

Вопросы и ответы

Как скачать план урока «Списки»?

Зарегистрируйтесь бесплатно — материал сохранится в личном кабинете, откуда его можно скачать как план урока или технологическую карту.

Соответствует ли план урока ФГОС?

Да, структура урока — цели, ход урока, планируемые результаты — построена по ФГОС для 8 класса (информатике).

Можно ли изменить план под свой класс?

Да. После регистрации план урока открывается в конструкторе: этапы и содержание можно отредактировать или перегенерировать.