Основы языка Python: переменные, типы данных и базовые операции
Цели и задачи
- Цель урока по SMART: к концу урока учащиеся объяснят назначение переменных и базовых типов данных Python, создадут и выполнят программу из 5–7 строк с использованием присваивания, ввода, вывода и арифметических операций, а также самостоятельно найдут и исправят не менее двух ошибок в коде.
- Сформировать представление о Python как языке программирования и раскрыть назначение переменных, типов данных int, float, str и функций input() и print().
- Научить применять присваивание, арифметические операции и преобразование типов при решении учебной задачи с реальным контекстом.
- Развивать алгоритмическое и критическое мышление через анализ готового кода, поиск ошибок и сравнение нескольких способов решения.
- Формировать ответственное отношение к результату программирования, навыки взаимопроверки и готовность самостоятельно выбирать уровень сложности задания.
Планируемые результаты
Личностные
- Учащиеся осознают практическую ценность программирования для дальнейшего обучения, профессионального самоопределения и решения задач из разных предметных областей.
- Проявляют интерес к исследованию возможностей Python и готовность задавать уточняющие вопросы при возникновении затруднений.
- Понимают значение точности, последовательности и проверки результата при создании компьютерной программы.
- Принимают возможность выбора уровня задания и оценивают собственную готовность к дальнейшему изучению языка программирования.
Метапредметные
- Планируют последовательность действий при создании программы: анализ условия, выбор переменных, запись алгоритма, тестирование и исправление ошибок.
- Извлекают информацию из фрагментов кода, таблицы типов данных и сообщений об ошибках.
- Сравнивают ожидаемый и фактический результат выполнения программы, формулируют причину расхождения.
- Работают в паре, аргументируют выбранное решение и корректно используют обратную связь.
- Применяют цифровые инструменты для написания, запуска и проверки программного кода.
Предметные
- Знать назначение языка Python, понятия «переменная», «значение», «тип данных», «оператор присваивания».
- Уметь создавать переменные и присваивать им значения типов int, float и str.
- Уметь использовать функции input() и print(), а также преобразования int() и float() при обработке пользовательского ввода.
- Уметь выполнять сложение, вычитание, умножение, деление и вычисление остатка от деления.
- Уметь читать простой программный код, прогнозировать результат его работы и исправлять типичные синтаксические и логические ошибки.
Универсальные учебные действия (УУД)
Личностные УУД
- Соотносят изучение Python с личными образовательными и профессиональными планами в сфере технологий, науки, экономики или инженерии.
- Осознают смысл аккуратного именования переменных и проверки кода как проявления ответственности за цифровой результат.
- Проявляют самостоятельность при выборе базового, повышающего или дополнительного задания.
- Формируют установку на восприятие ошибки как источника информации для улучшения решения.
Регулятивные УУД
- Формулируют цель практической работы и составляют краткий план создания программы.
- Прогнозируют результат выполнения кода до его запуска и сопоставляют прогноз с фактическим выводом.
- Осуществляют пошаговый самоконтроль по чек-листу: ввод, типы данных, вычисление, вывод, тестирование.
- Обнаруживают ошибку, выдвигают гипотезу о её причине и корректируют программный код.
- Оценивают степень достижения цели урока с помощью листа самооценки и рефлексивного вопроса.
Познавательные УУД
- Выделяют существенные элементы программного кода: имена переменных, значения, операции и функции.
- Классифицируют данные по типам int, float и str, объясняют необходимость преобразования строкового ввода в число.
- Моделируют решение бытовой задачи в виде последовательности команд Python.
- Анализируют код с ошибкой, устанавливают связь между причиной и полученным результатом.
- Используют таблицу и экспериментальный запуск программы для проверки предположений.
Коммуникативные УУД
- Формулируют точные вопросы о работе команд input(), print() и оператора присваивания.
- Распределяют роли в паре: автор кода и проверяющий, затем меняются ролями.
- Объясняют партнёру ход решения, используя предметные термины и конкретные фрагменты кода.
- Сравнивают разные варианты программы и аргументированно выбирают более понятный.
- При взаимопроверке дают обратную связь по формуле «два достоинства и один совет».
Подготовка учителя к уроку
- Подготовить компьютерный класс: один компьютер на каждого ученика или на пару, проверить запуск среды Python и возможность выполнения программ.
- Подготовить проектор или интерактивную доску для демонстрации кода и результатов его выполнения.
- Создать три набора карточек: базовый, повышающий и дополнительный; распечатать по одному комплекту на каждого ученика.
- Подготовить индивидуальный лист самооценки с пунктами «Я могу создать переменную», «Я могу преобразовать ввод в число», «Я могу найти ошибку».
- Разместить на доске или вывести на экран памятку: `print()`, `input()`, `int()`, `float()`, оператор `=`, основные арифметические операции.
- Подготовить стартовый фрагмент кода с намеренными ошибками: `age = input("Возраст: ")` и `next_age = age + 1`.
- Подготовить карточки со значениями `17`, `3.14`, `"Python"`, `True` и названиями типов данных для работы в парах.
- Распечатать по одному на парту чек-лист тестирования программы: «Вводится ли значение?», «Правильно ли выбран тип?», «Совпадает ли вывод с условием?».
- Подготовить слайд или плакат с проблемным вопросом: «Почему программа не может прибавить 1 к числу, которое пользователь ввёл с клавиатуры?»
- Подготовить таймер на 3–5 минут для самостоятельной работы и стикеры трёх цветов для рефлексии.
Ход урока
Этап 1. Организационный момент и мотивация (3 мин)
Цель этапа: включить учащихся в учебную деятельность и связать изучение Python с практическими и профессиональными задачами.
Время | Действие учителя | Действие учеников |
|---|---|---|
1 мин | Учитель приветствует класс и проверяет готовность: "Здравствуйте, ребята. Сегодня мы начинаем работу с языком Python. Проверьте, что перед вами открыта среда программирования, тетрадь и лист самооценки. На уроке вы не будете просто переписывать команды: вы будете исследовать, предполагать, запускать код и объяснять, почему программа работает именно так." | Проверяют компьютер, открывают среду Python, готовят тетради и лист самооценки. |
2 мин | Учитель показывает на экране короткий фрагмент: `name = "Аня"`, `print("Привет,", name)` и спрашивает: "Как вы думаете, что появится на экране? Где здесь хранится имя? Можно ли заменить значение переменной и получить другой результат? Запишите свой прогноз, пока не запуская программу. Это приём "Прогнозирование"." | Индивидуально записывают предполагаемый вывод, называют переменную `name`, отвечают: "На экране появится приветствие с именем Аня". |
Завершение этапа: учитель подводит итог: "Сегодня мы начнём с базовых конструкций, без которых невозможно написать даже небольшую полезную программу. Сначала проверим, какие представления о коде у нас уже есть, а затем выясним, как Python хранит и обрабатывает данные."
Этап 2. Актуализация знаний и выявление затруднения (6 мин)
Цель этапа: актуализировать представления об алгоритме, данных и командах программы, зафиксировать затруднение при обработке пользовательского ввода.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | Учитель организует приём "Подумай — обсуди в паре — поделись": "Вспомните, из каких шагов обычно состоит алгоритм решения задачи. Представьте, что программе нужно узнать имя пользователя и вывести приветствие. Что должна сделать программа сначала, что затем и чем завершить работу? Сначала подумайте молча, затем обсудите план с соседом и подготовьте одну точную формулировку." | Составляют последовательность: «получить данные, сохранить их, обработать, вывести результат», обсуждают её в паре и сообщают классу. |
3 мин | Учитель выводит на экран код: `x = input("Введите число: ")`, `y = x + 5`, `print(y)`. Учитель спрашивает: "Предскажите результат при вводе 7. Запустится ли эта программа? Если нет, то на какой строке возникнет затруднение? Не угадывайте ответ — объясните, что именно хранится в переменной x сразу после команды input()." | Записывают прогноз, находят строку `y = x + 5`, предполагают: «Программа выдаст ошибку, потому что введённое значение сначала является строкой». Формулируют вопрос: «Как преобразовать строку в число?» |
Завершение этапа: учитель подводит итог: "Мы вспомнили, что программа работает с данными по шагам, и обнаружили важное затруднение: ввод с клавиатуры нужно правильно интерпретировать. Теперь сформулируем цель исследования и определим, какие команды помогут нам это сделать."
Этап 3. Постановка проблемы и целеполагание (4 мин)
Цель этапа: сформулировать учебную проблему и совместно определить план открытия нового знания.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель возвращается к проблемному вопросу на экране: "Почему программа не может прибавить 1 к числу, которое пользователь ввёл с клавиатуры? Посмотрите на значение `7` и на запись `\"7\"`. Внешне они похожи, но компьютер хранит их по-разному. Какую цель поставим на урок? Постарайтесь использовать слова "переменная", "тип данных", "ввод" и "вывод"." | Формулируют цель: «Научиться создавать переменные, различать типы данных, принимать число с клавиатуры и выводить результат». Записывают цель в тетрадь. |
2 мин | Учитель фиксирует на доске план: "Сначала определим, что такое переменная и тип данных; затем исследуем input() и print(); после этого применим преобразование типов в небольшой программе; в конце проверим себя на заданиях разной сложности. Если останется время, предложу дополнительную задачу на самостоятельный выбор." | Сверяют предложенный план со своей целью, задают уточняющие вопросы и записывают четыре шага исследования. |
Посмотрите план целиком
Зарегистрируйтесь — и откройте план урока по этой теме полностью: цели, ход урока и рефлексия по ФГОС.
Завершение этапа: учитель подводит итог: "Проблема и план у нас есть. Теперь не будем принимать правило на веру: проверим работу команд на конкретных примерах и сами выведем закономерность."
Этап 4. Открытие нового знания через исследование кода (10 мин)
Цель этапа: открыть назначение переменных, базовых типов данных, функций ввода и вывода, а также преобразования строкового ввода в число.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | Учитель демонстрирует на экране таблицу: `int` — целое число, `float` — вещественное число, `str` — строка. Реплика: "Рассмотрите четыре значения: `17`, `3.14`, `\"Python\"`, `\"17\"`. Подумайте, какие из них можно складывать как числа, а какие являются текстом. Обсудите в парах и разложите карточки по типам. Обратите внимание: кавычки меняют смысл значения." | В парах распределяют карточки, объясняют классификацию: `17` — int, `3.14` — float, `"Python"` и `"17"` — str. Формулируют вывод: «Одинаково выглядящие данные могут иметь разные типы». |
3 мин | Учитель записывает и запускает код: `a = 7`, `b = 3`, `print(a + b)`, `print(a / b)`. Затем обращается к классу: "Что хранится в a и b? Какой результат даст сложение? Почему результат деления записан с десятичной частью? Теперь заменим первую строку на `a = \"7\"` и проверим, что изменится." | Прогнозируют результаты, называют `a` и `b` переменными, отвечают: «Сложение даст 10, деление — приблизительно 2.333». После изменения значения обнаруживают ошибку при сложении строки и числа. |
4 мин | Учитель показывает команды: `age = input("Введите возраст: ")`, `age = int(age)`, `print(age + 1)`. Реплика: "Функция input() получает данные как строку. Функция int() преобразует строку, содержащую целое число, в целое число; функция float() работает с вещественными значениями. Запишем сокращённый вариант: `age = int(input(\"Введите возраст: \"))`. Сравните обе записи и объясните, почему они дают один и тот же результат." | Записывают обе формы, проговаривают порядок действий: «сначала input() получает строку, затем int() преобразует её». Запускают программу с возрастом 16 и получают 17. |
Запись в тетрадях
- Переменная — именованная область памяти, в которой хранится значение.
- Оператор `=` присваивает переменной значение.
- `input()` получает данные с клавиатуры в виде строки.
- `print()` выводит данные на экран.
- `int()` преобразует значение в целое число, `float()` — в вещественное число.
- Основные операции: `+`, `-`, `*`, `/`, `%`.
Завершение этапа: учитель подводит итог: "Мы установили, что переменная имеет имя и значение, а каждое значение относится к определённому типу. Особенно важно помнить: input() возвращает строку, поэтому перед вычислениями нужно выполнить преобразование. Теперь проверим это знание сначала вместе, а затем самостоятельно."
Этап 5. Первичное закрепление: «Кодовый конструктор» (7 мин)
Цель этапа: закрепить распознавание типов данных и последовательность команд при создании простой программы.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | Учитель раздаёт карточки с фрагментами: `name = input(...)`, `print(...)`, `int(...)`, `total = price * count`. Реплика: "Соберите в паре программу, которая запрашивает цену одного товара и количество товаров, вычисляет общую стоимость и выводит её. Сначала составьте порядок команд на карточках, затем перенесите решение в редактор. Ваша задача — объяснить партнёру, почему цена и количество должны быть преобразованы в числа." | Собирают алгоритм: ввод цены, ввод количества, преобразование, умножение, вывод. Запускают программу на примере цены 120 и количества 3, получают 360. |
2 мин | Учитель предлагает взаимопроверку по чек-листу: "Поменяйтесь местами с партнёром. Проверьте, есть ли в коде два преобразования int() или float(), понятные имена переменных и команда вывода. Сформулируйте две сильные стороны решения и один совет." | Проверяют код партнёра, называют конкретные достоинства и совет, например: «Цена преобразована в float, но сообщение вывода можно сделать понятнее». |
2 мин | Учитель показывает три утверждения: «input() всегда возвращает число», «оператор = сравнивает значения», «знак % вычисляет остаток от деления». Реплика: "Отметьте верные утверждения и исправьте неверные. Обоснуйте хотя бы один ответ ссылкой на выполненный код." | Отмечают только третье утверждение как верное, исправляют первые два: «input() возвращает строку», «= выполняет присваивание». |
Завершение этапа: учитель подводит итог: "Вы уже собрали работающую программу и проверили её по критериям. Следующий шаг — индивидуальная работа: каждый выберет посильный уровень и покажет, насколько уверенно умеет применять новый алгоритм без подсказки пары."
Этап 6. Самостоятельная работа с дифференциацией и самопроверкой (10 мин)
Цель этапа: применить новые знания индивидуально, выполнить задание выбранного уровня и провести самопроверку по эталону.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель объясняет выбор: "Перед вами три уровня. Базовый обязателен для всех. Повышающий выбирают те, кто уверенно справляется с базовым. Дополнительный предназначен для тех, кто готов объяснить решение и проверить несколько вариантов входных данных. Выберите уровень осознанно: сложность задания не определяет вашу ценность, она показывает ближайшую зону роста." | Выбирают карточку, записывают номер уровня и кратко формулируют план решения. |
5 мин | Учитель раздаёт задания. Базовый уровень: "Напишите программу, которая получает длину и ширину прямоугольника, вычисляет площадь и периметр и выводит оба результата." Повышающий уровень: "Напишите программу, которая получает количество минут и переводит его в часы и оставшиеся минуты." Дополнительный уровень: "Напишите программу, которая получает сумму покупки и процент скидки, вычисляет размер скидки и итоговую стоимость. Предусмотрите вещественные значения." Учитель напоминает: "Сначала проверьте типы данных, затем вычисление, затем вывод." | Индивидуально пишут и запускают программу, используют `int()` или `float()`, проверяют результат на тестовых данных. Например, для прямоугольника со сторонами 5 и 3 получают площадь 15 и периметр 16. |
3 мин | Учитель выводит эталонные контрольные примеры: для базового задания `5`, `3`; для повышающего `135`; для дополнительного `1000`, `15`. Реплика: "Сверьте не только ответ, но и структуру программы. Если результат отличается, найдите строку расхождения, проверьте скобки, типы и формулу. Исправление ошибки обязательно отметьте в тетради." | Сравнивают результаты с контрольными, исправляют ошибки и записывают причину исправления: неверный тип, перепутанная формула, пропущенная скобка или ошибка в имени переменной. |
Эталон решения
Для базового задания: `a = float(input("Введите длину: "))`; `b = float(input("Введите ширину: "))`; `s = a * b`; `p = 2 * (a + b)`; `print("Площадь:", s)`; `print("Периметр:", p)`. При `a = 5` и `b = 3`: \(S = a \cdot b = 5 \cdot 3 = 15\); \(P = 2(a+b)=2(5+3)=16\). Для повышающего задания: `minutes = int(input("Введите минуты: "))`; `hours = minutes // 60`; `rest = minutes % 60`; `print(hours, "ч", rest, "мин")`. При 135 минутах: \(135 // 60 = 2\), \(135 \% 60 = 15\).
Завершение этапа: учитель подводит итог: "Самостоятельная работа показала, что один и тот же общий алгоритм применяется к разным ситуациям: получить данные, преобразовать их, вычислить результат и вывести его. В завершение проверим не только код, но и собственное понимание — что стало ясным, а где нужна дополнительная тренировка."
Этап 7. Рефлексия, подведение итогов и домашнее задание (5 мин)
Цель этапа: осознать результаты деятельности, выявить затруднения и определить индивидуальную траекторию дальнейшей работы.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель проводит рефлексию «Светофор»: "Поднимите зелёную карточку, если вы можете самостоятельно создать переменную и вывести её значение; жёлтую — если понимаете общий принцип, но иногда путаетесь в типах; красную — если пока требуется пошаговая помощь. После выбора назовите один конкретный вопрос, который поможет перейти на следующий уровень." | Поднимают карточку, формулируют самооценку: «Мне нужно потренироваться в преобразовании input()» или «Я могу написать программу для расчёта стоимости». |
2 мин | Учитель предлагает «Билет на выход»: "На отдельной строке ответьте на два вопроса: чем отличаются `7` и `\"7\"` в Python; зачем используется оператор `%`? Дополнительно напишите одну команду, которую сегодня считаете наиболее важной." | Письменно отвечают: «7 — целое число, \"7\" — строка»; «% находит остаток от деления». Сдают ответы при выходе или прикрепляют на доску. |
1 мин | Учитель объявляет домашнее задание: "Выберите обязательный уровень и, если готовы, один из повышающих. Ваша задача — не только получить ответ, но и проверить программу минимум на двух наборах данных. На следующем уроке мы используем переменные и операции в условных конструкциях." | Записывают выбранный уровень домашнего задания, отмечают в листе самооценки достигнутые умения. |
Завершение этапа: учитель подводит итог: "Сегодня вы открыли базовый принцип работы Python: программа получает данные, хранит их в переменных, обрабатывает и выводит результат. Самая частая ошибка — забыть, что input() возвращает строку, поэтому вычисления требуют преобразования типа. На следующем уроке мы научимся использовать условия, чтобы программа могла выбирать действие в зависимости от данных."
Критерии оценивания практической работы
- «5» — программа выбранного уровня запускается без ошибок, корректно использует переменные и преобразование типов, формула записана верно, вывод понятен, выполнена проверка минимум на двух наборах данных и дано объяснение решения.
- «4» — программа решает поставленную задачу, но допущена одна неточность в оформлении, сообщении вывода или тестировании; после подсказки ошибка исправлена самостоятельно.
- «3» — выполнена основная часть алгоритма, но допущены ошибки в типах, формуле или выводе; программа запускается после помощи учителя, понимание назначения ключевых команд частичное.
Рефлексия
Вопрос для ученика | Цель вопроса |
|---|---|
Что нового вы узнали о результате работы функции input()? | Выявление понимания ключевого затруднения урока и необходимости преобразования типа. |
Какое задание вы выбрали и почему считаете этот уровень подходящим? | Оценка осознанности выбора и готовности к самостоятельной учебной деятельности. |
На какой строке программы возникла ошибка или могла возникнуть? Как вы её нашли? | Выявление сформированности навыка отладки и регулятивного самоконтроля. |
Какую конструкцию Python вы готовы объяснить однокласснику? | Определение осознанности предметного знания и способности к коммуникации. |
Завершающее слово учителя
"Сегодня мы заложили основу работы с Python: научились создавать переменные, различать строки и числа, принимать данные и выполнять вычисления. Запомните типичную ошибку: значение, введённое через input(), сначала является строкой, даже если пользователь набрал цифры. Хорошая программа — это не только правильный ответ, но и понятные имена переменных, проверка разных входных данных и умение объяснить каждую команду. На следующем уроке мы добавим условия и научим программу выбирать дальнейшее действие."
Домашнее задание
Уровень | Что задать | Зачем |
|---|---|---|
Базовый (обязательный) | Написать и проверить 2 программы по образцу урока: первая получает два числа и выводит их сумму, разность и произведение; вторая получает длину и ширину прямоугольника и выводит площадь и периметр. Для каждой программы использовать не менее двух наборов входных данных. | Закрепляет создание переменных, ввод, преобразование типов и применение арифметических операций; при проверке обратить внимание на корректность формул и выводов. |
Средний (повышающий) | Написать программу, которая получает общее количество секунд и переводит его в минуты и оставшиеся секунды, а также программу расчёта стоимости поездки по расстоянию и цене одного километра. Добавить понятные текстовые сообщения пользователю. | Развивает применение операций целочисленного деления и остатка, работу с реальным контекстом и умение проектировать последовательность вычислений. |
Продвинутый (дополнительный) | Разработать программу для расчёта итоговой стоимости покупки: вводятся цена товара, количество и процент скидки; программа выводит стоимость до скидки, размер скидки и итоговую стоимость. Протестировать программу на трёх наборах данных и кратко описать один возможный источник ошибки. | Формирует навыки моделирования реальной ситуации, работы с вещественными числами, декомпозиции задачи и самостоятельной отладки. |
Контрольные вопросы перед выходом: «Какой тип данных возвращает input()?», «Какая команда преобразует строку в целое число?», «Чем отличаются операции `/`, `//` и `%`?», «Что произойдёт, если сложить строку и число?», «Какие шаги включает проверка программы?»