Урок 1.1. Что такое Python и где живёт код
Шаги урока (Stepik): Видео → Текст → Тест → Тест → Текст → Сопоставление → Итог.
Шаг 1. [ВИДЕО] Язык, на котором говорят с компьютером
Хронометраж ~2:30. Формат: скринкаст + голос за кадром. Цель: заинтересовать, без кода.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:15 | Заставка курса | «Это курс, на котором вы научитесь писать программы на Python. Уже через несколько занятий вы напишете свою первую программу – и она заработает.» |
| 0:15–0:50 | Коллаж: сайт, игра, график, чат-бот | «Python – это язык, на котором человек объясняет компьютеру, что делать. На нём пишут сайты, игры, чат-ботов, программы для анализа данных и для искусственного интеллекта. Это не учебная игрушка: им пользуются настоящие инженеры и учёные.» |
| 0:50–1:30 | Рядом два текста: длинный на другом языке и короткий на Python, оба печатают «Привет» | «Почему мы начинаем именно с Python? Потому что его легко читать. Перед вами программа, которая выводит слово на экран: слева – на другом языке, справа – на Python. Питон короче и понятнее. А значит, меньше времени уходит на технические детали и больше – на саму задачу.» |
| 1:30–2:10 | Экран PyCharm: вставляем готовый код, нажимаем Run, внизу появляется результат | «Программу пишут в специальной программе – среде разработки. Мы будем работать в PyCharm. Это выглядит так: вставляем готовый код, нажимаем «Запустить» – и компьютер выполняет то, что мы попросили. А как код устроен внутри, начнём разбирать со следующего урока.» |
| 2:10–2:30 | Чек-лист урока, кнопка «Дальше» | «В этом уроке мы разберёмся, что такое Python и где живёт код. А в следующем – установим PyCharm и запустим вашу первую программу.» |
Заметка для записи: код на экране набирать живьём (виден процесс), шрифт крупный (≥ 18 pt), тема PyCharm – светлая для контраста.
Шаг 2. [ТЕКСТ] Что такое Python?
Python – современный язык программирования. На нём пишут самые разные программы: от простых учебных задач до больших настоящих проектов.
На Python создают:
- сайты и веб-сервисы;
- игры и учебные проекты;
- чат-ботов;
- программы для анализа данных;
- программы для искусственного интеллекта.
Python часто выбирают, чтобы начать программировать: его код легко читать, многие команды понятны даже новичку. Но это не «детский» язык – им пользуются инженеры, аналитики и учёные по всему миру.
Главное удобство: на Python можно быстро превратить идею в работающую программу. Меньше внимания уходит на сложные технические детали – больше на саму задачу: что программа должна получить на вход и какой результат выдать.
В этом курсе мы будем двигаться шаг за шагом: сначала научимся запускать простые команды, затем – писать программы, которые задают вопросы, считают, принимают решения, повторяют действия и обрабатывают данные.
Шаг 3. [ТЕСТ · один ответ] B1-04
Где здесь команда на языке Python?
- ⬤ print("Привет!") ✔
- ◯ Компьютер, выведи, пожалуйста, слово «Привет»
- ◯ Просто текст: Привет!
Подсказка при ошибке: язык программирования – это точные команды по своим правилам (со скобками и кавычками), а не просьба обычными словами и не просто текст.
Шаг 4. [ТЕСТ · несколько ответов] B1-05
Что из этого можно сделать с помощью Python? (выберите все верные варианты)
- ☑ Сделать сайт или чат-бота ✔
- ☑ Посчитать числа и построить по ним график ✔
- ☑ Запрограммировать игру ✔
- ☐ Полить цветы на подоконнике
- ☐ Помыть чашку
Подсказка при ошибке: Python создаёт программы – то, что живёт внутри компьютера (сайты, игры, расчёты). Дела в реальном мире сам по себе он не делает.
Шаг 5. [ТЕКСТ] Где живёт код?
Мы сказали, что язык программирования нужен, чтобы «разговаривать» с компьютером. Но компьютер – необычный собеседник: голосом с ним не поговоришь, команды нужно передавать очень точно. Поэтому придумали специальные программы – в них пишут код, запускают его, смотрят результат и находят ошибки.
Код можно писать в разных местах:
- простые текстовые редакторы – в них можно набрать код как обычный текст, но они почти не помогают;
- онлайн-среды, например Google Colab – сайты, где код пишут и запускают прямо в браузере, ничего не устанавливая (пригодятся как запасной вариант, если PyCharm установить не получилось);
- редакторы кода, например VS Code – подсвечивают код и подсказывают;
- среды разработки, например PyCharm – мощные программы, созданные специально для работы с кодом.
В таких программах код подсвечивается цветами: сразу видно, где команда, где текст, где число. А если забыть кавычку или скобку – среда подскажет, что что-то не так.
В этом курсе мы работаем в PyCharm. Его удобно представлять как рабочее место программиста: здесь создают файлы, пишут команды на Python, запускают программы и проверяют результат. PyCharm создан специально для Python, поэтому он подсвечивает код цветом, подсказывает команды по мере набора и сразу показывает, где ошибка – таких удобных функций в нём много, и дальше в курсе мы будем ими пользоваться. В следующем уроке мы установим PyCharm и создадим первый проект.
Шаг 6. [СОПОСТАВЛЕНИЕ] B1-06
Соедините название с тем, что это на самом деле.
| Понятие | Что это | |
|---|---|---|
| Python | → | Язык программирования – правила, по которым записывают команды |
| PyCharm | → | Программа, в которой набирают код и нажимают «Запустить» |
| Код | → | Текст программы – команды, которые мы написали |
Эти три слова легко перепутать, а разница простая: Python – это на чём пишем (язык), PyCharm – где пишем и запускаем (программа), код – что мы написали. Дальше в курсе все три встречаются постоянно.
Шаг 7. [ТЕКСТ · Итог] Что мы поняли
- Python – язык, которым человек объясняет компьютеру, что делать; на нём пишут сайты, игры, ботов, анализ данных и искусственный интеллект.
- Его выбирают для старта, потому что код легко читать.
- Код пишут в специальных программах. Наша – PyCharm, «рабочее место программиста».
Дальше: установим PyCharm и напишем первую программу.
Урок 1.2. Первый запуск: скопируй, вставь, запусти
Шаги: Видео → Текст (что ставим) → Текст (установка + запасной вариант) → Код (B1-01: первый запуск) → Численная задача (B1-02) → Итог.
Цель урока – почувствовать, как программа запускается: скопировать готовый код, вставить, нажать «Запустить» и посмотреть, что появилось. Как устроены команды – разберём в Блоке 2.
Наш основной инструмент – PyCharm. Если установить его не получается, в конце шага про установку есть онлайн-вариант (Google Colab) – тоже подойдёт.
Шаг 1. [ВИДЕО] Устанавливаем PyCharm и запускаем код
Хронометраж ~3:20. Экран компьютера, всё «вживую».
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:20 | Заставка урока | «Сейчас установим PyCharm и запустим первую программу. Если что-то не пойдёт – под видео есть текст с запасными вариантами.» |
| 0:20–1:10 | Установочный файл / сайт PyCharm → Community | «Ставим бесплатную версию – Community. Файл с установкой можно скачать или взять у преподавателя – он легко пересылается.» |
| 1:10–2:00 | Установщик: Next, галочки, Install | «Запускаем установщик. Next. Отмечу ярлык на рабочий стол и «.py». Install – и ждём.» |
| 2:00–2:40 | New Project → файл main.py | «Открываем PyCharm, создаём новый проект и в нём файл main.py.» |
| 2:40–3:20 | Вставляем готовый код, Run, в консоли результат | «Берём готовый код из урока, копируем, вставляем в файл и жмём зелёную стрелку «Запустить». Внизу, в консоли, появляется результат. Что именно делает код, разберём позже – сейчас главное увидеть, что программа работает.» |
Заметка для записи: показать установку целиком, без склеек. Скриншоты ниже ([СКРИНШОТ: …]) снять с этого же экрана.
Шаг 2. [ТЕКСТ] Что именно мы ставим
Мы ставим PyCharm Community Edition – это бесплатная среда разработки для Python. Платная версия Professional нам не нужна.
PyCharm – это «рабочее место программиста»: здесь удобно писать код, запускать программы и видеть ошибки.
Шаг 3. [ТЕКСТ] Установка по шагам
Windows (основной вариант)
- Запустите установочный файл PyCharm Community (мы прикладываем его к курсу; его же можно скачать с jetbrains.com/pycharm, столбец Community).
[СКРИНШОТ: установочный файл] - В установщике нажимайте Next; на шаге с галочками отметьте Create Desktop Shortcut и .py.
[СКРИНШОТ: окно с галочками] - Install → дождитесь окончания → запустите PyCharm.
macOS / Linux
macOS: откройте .dmg (Community) и перетащите PyCharm в Программы. Linux: распакуйте архив (Community) и запустите pycharm.sh из папки bin (или поставьте через JetBrains Toolbox).
Если PyCharm установить не получилось – запасной вариант
- Сначала попробуйте установочный файл, приложенный к курсу: его можно переслать и установить без захода на сайт.
- Если установить никак не выходит, воспользуйтесь онлайн-средой Google Colab (
colab.research.google.com): код пишут и запускают прямо в браузере, ничего не устанавливая. Нужен только аккаунт Google. Это полноценный запасной вариант – все задания курса в нём решаются. - По возможности всё же ставьте PyCharm: с ним мы работаем в видео, и он удобнее для постоянной работы.
Шаг 4. [КОД] B1-01. Первый запуск
Условие. Сейчас вы запустите свою первую программу. Писать ничего не нужно – код уже готов, ваша задача его запустить.
- Откройте PyCharm → New Project → выберите папку → Create.
[СКРИНШОТ: экран приветствия] - Правой кнопкой по папке проекта → New → Python File → имя
main.[СКРИНШОТ: создание файла] - Скопируйте код задания и вставьте его в файл.
- Нажмите зелёную стрелку ▶ (она запускает программу). Внизу откроется консоль с результатом.
[СКРИНШОТ: консоль с выводом]
Программа должна вывести такие строки:
Привет! Это моя первая программа на Python.
Я её запустил, и она работает.
Дальше я научусь писать такие программы сам.
Получилось? Вы только что запустили настоящую программу – пока не разбираясь, как она устроена. Это нормально: сначала пробуем, потом понимаем.
Шаблон кода (уже заполнен):
::code
print("Привет! Это моя первая программа на Python.")
print("Я её запустил, и она работает.")
print("Дальше я научусь писать такие программы сам.")
Тесты:
def generate():
return ['']
def solve(dataset):
return ("Привет! Это моя первая программа на Python.\n"
"Я её запустил, и она работает.\n"
"Дальше я научусь писать такие программы сам.")
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B1-01_hello.py. Подсказка: ничего не меняйте – просто нажмите «Запустить»/«Отправить».
Шаг 5. [ЧИСЛЕННАЯ ЗАДАЧА] B1-02. Что выведет программа?
Условие. Эта программа выглядит сложнее: в ней есть переменные, список и циклы. Но разбираться, как она работает, пока не нужно – просто вставьте её в редактор, запустите и впишите число, которое появилось в консоли.
numbers = [3, 8, 5, 2, 7]
total = 0
for x in numbers:
total = total + x
biggest = numbers[0]
for x in numbers:
if x > biggest:
biggest = x
print(total + biggest)
Ответ: 33 Цель – привыкнуть запускать даже «страшный» на вид код и спокойно читать результат. Скоро вы сами научитесь писать такие программы.
Шаг 6. [ТЕКСТ · Итог] Что мы умеем
- Установили PyCharm Community (а если не вышло – онлайн-вариант Google Colab).
- Создали проект, вставили готовый код и запустили его.
- Научились смотреть результат в консоли – даже у программы, которая выглядит сложной.
Дальше – урок 1.3: что делать, когда программа ломается.
Урок 1.3. Когда что-то ломается
Шаги: Видео → Текст (как читать ошибку) → Численная задача (B1-03) → Численная задача (B1-07) → Итог.
Ошибки будут у всех – это часть работы. Здесь научимся не пугаться сообщения об ошибке и находить строку, в которой Python споткнулся. Команды разберём в Блоке 2 – пока просто запускаем и читаем сообщения.
Шаг 1. [ВИДЕО] Ошибка – это подсказка
Хронометраж ~2:30. Скринкаст: запускаем код, ломаем его и читаем сообщение.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:20 | Рабочий код print("Привет, мир!"), запуск – всё хорошо | «В прошлом уроке мы запустили готовую программу. Теперь нарочно её сломаем – и увидим, что это совсем не страшно.» |
| 0:20–1:10 | Стираем закрывающую кавычку, запускаем → красное сообщение в консоли | «Уберём одну кавычку и запустим. Внизу появилось красное сообщение – это ошибка. Программа не «сломалась навсегда»: Python просто говорит, что чего-то не понял.» |
| 1:10–2:05 | Подсвечиваем в сообщении номер строки | «Главное в сообщении – номер строки. Python показывает, где он споткнулся. Наша задача – найти эту строку и посмотреть, что в ней не так. Здесь – не хватает кавычки.» |
| 2:05–2:30 | Возвращаем кавычку, запускаем – снова работает | «Стоит вернуть кавычку – и программа снова работает. Видеть, где ошибка, – главный навык на старте. Дальше вы будете находить такие строки сами.» |
Шаг 2. [ТЕКСТ] Как читать сообщение об ошибке
Когда программа не запускается, Python показывает сообщение об ошибке. Пугаться его не нужно – это подсказка. В нём есть две полезные вещи:
- номер строки, где Python споткнулся;
- тип ошибки (например,
SyntaxError– «ошибка записи»).
Главное в сообщении – номер строки и тип ошибки.
Хитрый момент. Если забыли закрыть кавычку, Python ставит ^ там, где строка началась (под открывающей кавычкой), ведь конца он не нашёл. А закрывающую кавычку нужно дописать в конце строки.
Что делать: посмотреть на указанную строку и сравнить с тем, что в ней написано. Частые причины в начале:
- забыли закрыть кавычку или скобку;
- написали команду не в том регистре (
Printвместоprint); - случайно набрали русскую букву вместо латинской в команде.
Компьютер делает ровно то, что написано, а не то, что вы имели в виду – поэтому он и «придирается» к мелочам.
Шаг 3. [ЧИСЛЕННАЯ ЗАДАЧА] B1-03. В какой строке ошибка?
Условие. Вставьте программу в редактор и запустите. Python покажет ошибку. В какой строке ошибка? Впишите номер строки.
print("Привет!")
print("Как дела?)
print("Пока!")
Ответ: 2 Подсказка: запустите и посмотрите номер строки в сообщении; затем сравните строки глазами.
Шаг 4. [ЧИСЛЕННАЯ ЗАДАЧА] B1-07. И снова: в какой строке ошибка?
Условие. Ещё одна программа со «сломанной» строкой. Запустите её и впишите номер строки, которую укажет Python.
print("Меню на сегодня:)
print("Суп")
print("Чай")
Ответ: 1 Подсказка: ищите строку, где кавычка открылась, но не закрылась. Python укажет её номер в сообщении.
Шаг 5. [ТЕКСТ · Итог] Что мы умеем
- Ошибка – это подсказка, а не провал.
- В сообщении смотрим номер строки и тип ошибки.
- Умеем найти строку, в которой Python споткнулся, – это главный навык на старте.
Дальше – Блок 2: начнём писать код сами – познакомимся с командой вывода print, переменными и вычислениями.
Урок 2.1. Вывод на экран: команда print
Шаги урока (Stepik): Видео → Текст (как работает print) → Текст (несколько значений) → Текст (комментарии) → Код (B2-01) → Численная (B2-02) → Численная (B2-08) → Итог.
В Блоке 1 вы запускали готовый код и читали ошибки. Теперь начинаем писать код сами – с самой частой команды Python. Она выводит текст на экран.
Шаг 1. [ВИДЕО] Учимся выводить текст
Хронометраж ~2:40. Скринкаст в PyCharm, код набираем живьём.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:20 | Пустой файл main.py | «В прошлом блоке мы запускали готовую программу. Сегодня разберём команду, которая выводит текст на экран, – и напишем её сами.» |
| 0:20–1:05 | Набираем print("Привет!"), Run, в консоли Привет! | «Команда называется print – по-английски «печатать». В скобках, в кавычках, пишем текст. Запускаем – текст появляется в консоли. Кавычки обязательны: они говорят Python, что внутри – текст, а не команда.» |
| 1:05–1:55 | Добавляем ещё две строки print(...); выполняются сверху вниз | «Команд может быть несколько. Python выполняет их по очереди, сверху вниз – как пункты инструкции. Добавим вторую и третью строку: программа печатает их одну за другой.» |
| 1:55–2:25 | print("Сумма:", 2 + 2) → Сумма: 4 | «В скобках можно перечислить несколько значений через запятую – Python выведет их в одну строку через пробел. И заметьте: то, что без кавычек, Python считает – здесь он посчитал 2 + 2.» |
| 2:25–2:40 | Пишем # моя первая программа над кодом | «А это – комментарий, после решётки. Python его пропускает: он нужен человеку. Дальше – ваши задания.» |
Заметка для записи: код набирать живьём (виден процесс), шрифт ≥ 18 pt, тема PyCharm – светлая для контраста.
Шаг 2. [ТЕКСТ] Как работает print
print() – команда «вывести на экран». То, что нужно показать, пишут в скобках. Текст всегда заключают в кавычки:
print("Привет, мир!")
Команд может быть несколько, и Python выполняет их по порядку, сверху вниз:
print("Привет!")
print("Меня зовут Лиза")
print("Мне нравится программировать")
Вывод:
Привет!
Меня зовут Лиза
Мне нравится программировать
Python читает команды по порядку, сверху вниз, и каждая печатает свою строку в консоль.
Шаг 3. [ТЕКСТ] Несколько значений в одной строке
В скобках можно перечислить несколько значений через запятую – Python выведет их в одну строку, разделив пробелом:
print("Привет,", "Лиза")
Вывод:
Привет, Лиза
Это удобно, когда рядом нужно показать текст и число:
print("Возраст:", 12)
Вывод:
Возраст: 12
Обратите внимание: "Возраст:" в кавычках – это текст, а 12 без кавычек – число. Разницу между текстом и числом мы подробно разберём в следующем уроке.
Шаг 4. [ТЕКСТ] Комментарии
Комментарии начинаются с #. Это заметки для человека – Python их не выполняет:
# приветствие
print("Здравствуйте!") # это тоже комментарий
Комментарии помогают не забыть, что делает код, и подписать сложные места. На практике их пишут постоянно – даже опытные программисты, чтобы через месяц понять собственный код.
Комментарии удобны ещё в двух случаях:
- отладка. Если программа ведёт себя странно, можно временно «выключить» строку – поставить перед ней
#. Python её пропустит, и видно, в ней ли было дело:
print("шаг 1")
# print("шаг 2") # временно отключили эту строку
print("шаг 3")
- сохранить старый вариант. Прежнюю версию строки можно не удалять, а закомментировать – вдруг ещё пригодится:
# print("старый вариант")
print("новый вариант")
Если пояснение длинное, не обязательно ставить # на каждой строке. Можно взять текст в тройные кавычки – Python не выполнит его как команду:
"""
Эта программа здоровается и называет имя.
Здесь можно в несколько строк пояснить, что и зачем.
"""
print("Здравствуйте!")
Шаг 5. [КОД] B2-01. Визитка
Условие. Выведите визитку – ровно три строки:
Имя: Лиза
Любимое число: 7
Любимый цвет: синий
Шаблон кода (Stepik «Code template»):
::code
# выведите три строки визитки
Тесты (вкладка «Тесты» → проверка кодом):
def generate():
return [''] # ввода нет – один пустой датасет
def solve(dataset):
return "Имя: Лиза\nЛюбимое число: 7\nЛюбимый цвет: синий"
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B2-01_visitka.py. Подсказка при ошибке: проверьте двоеточия и пробелы – текст должен совпасть точь-в-точь.
Шаг 6. [ЧИСЛЕННАЯ ЗАДАЧА] B2-02. Найдите ошибку: простая
Условие. В этой короткой программе потеряна кавычка. Запустите её, посмотрите сообщение об ошибке и впишите номер строки, который укажет Python.
print("Привет, Лиза!)
Ответ: 1 Подсказка: если кавычка не закрыта, Python пишет «unterminated string literal (detected at line …)» – там и номер строки.
Шаг 7. [ЧИСЛЕННАЯ ЗАДАЧА] B2-08. Найдите ошибку: посложнее
Условие. Программа побольше, и в ней снова потеряна кавычка. Разбираться, как она работает, не нужно – просто запустите и впишите номер строки с ошибкой.
name = "Лиза"
age = 12
print("Имя:", name)
print("Возраст:", age)
total = age + 5
print("Через 5 лет тебе будет:", total)
print("Любимое число: 7)
print("Любимый цвет: синий")
print("Спасибо за внимание!")
print("Конец программы")
Ответ: 7 Подсказка: ищите строку, где кавычка открылась, но не закрылась. Python назовёт её номер в сообщении.
Шаг 8. [ТЕКСТ · Итог] Что мы умеем
print("текст")выводит текст; кавычки обязательны.- В скобках можно перечислить значения через запятую – они выведутся через пробел.
- Команды выполняются сверху вниз.
#– комментарий для человека; им же удобно временно отключать строки и пояснять код.- По сообщению об ошибке умеем найти строку, где потеряна кавычка.
Дальше – урок 2.2: научимся хранить значения в переменных и спрашивать данные у пользователя.
Урок 2.2. Переменные, типы данных и ввод
Шаги урока (Stepik): Видео → Текст (переменные) → Текст (типы) → Текст (ввод input) → Тест (B2-03) → Код (B2-04) → Код (B2-05) → Итог.
Программа становится интересной, когда умеет запоминать значения и спрашивать их у человека. Этим и займёмся.
Шаг 1. [ВИДЕО] Коробки с ярлыками
Хронометраж ~3:00. Скринкаст в PyCharm, код набираем живьём.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:20 | Пустой main.py | «Пока наши программы умели только печатать готовый текст. Сегодня научим их запоминать значения и спрашивать данные у пользователя.» |
| 0:20–1:10 | name = "Лиза" → print(name) → Лиза | «Вот переменная. Слева – имя, которое мы придумали, справа от знака равно – значение. Это как коробка с ярлыком: на ярлыке написано name, внутри лежит "Лиза". Дальше можно обращаться к коробке по имени.» |
| 1:10–1:55 | age = 12 → print("Возраст:", age) | «В коробку можно положить не только текст, но и число. Число пишем без кавычек. И заметьте: name хранит текст, age хранит число – Python различает их.» |
| 1:55–2:40 | name = input() → ввод в консоли → print("Привет,", name) | «А вот команда input – она ждёт, пока человек что-то напечатает, и кладёт это в переменную. Запускаем, печатаем имя, нажимаем Enter – программа здоровается.» |
| 2:40–3:00 | input() для числа + int(...) | «Важно: input всегда возвращает текст. Если ждём число – оборачиваем в int. Зачем – разберём в задании. Дальше – практика.» |
Шаг 2. [ТЕКСТ] Переменные
Переменная – это именованное хранилище для значения. Удобно представлять её как коробку с ярлыком: на ярлыке – имя, которое мы придумали, внутри – значение.
name = "Лиза"
age = 12
Слева от = – имя переменной, справа – значение. Знак = здесь означает не «равно», а «положить значение в коробку».
После этого к значению обращаются по имени:
name = "Лиза"
print("Привет,", name)
Вывод:
Привет, Лиза
Имя переменной придумываете вы. Несколько правил: пишут латиницей, без пробелов, понятными словами (age, price, user_name). Так код легче читать – и вам, и другим.
Шаг 3. [ТЕКСТ] Типы данных
У каждого значения есть тип – то, что это за данные. В начале нам хватит трёх:
| Тип | Что это | Пример |
|---|---|---|
int | целое число | 12, -3, 0 |
float | дробное число | 2.5, -0.1, 3.0 |
str | текст (строка) | "Лиза", "привет", "12" |
Главное различие – число или текст:
- число пишут без кавычек:
12– этоint, с ним можно считать; - текст пишут в кавычках:
"12"– этоstr, набор символов.
Это не мелочь. 12 и "12" выглядят похоже, но ведут себя по-разному:
print(12 + 12) # 24 – сложили числа
print("12" + "12") # 1212 – склеили текст
Для чисел + складывает, а для текста + склеивает строки. Поэтому важно знать, что у вас в руках – число или текст.
Шаг 4. [ТЕКСТ] Ввод данных: input
Команда input() ждёт, пока пользователь что-нибудь напечатает и нажмёт Enter, и возвращает введённое:
name = input()
print("Здравствуйте,", name)
Один важный момент, на котором спотыкаются все новички: input() всегда возвращает текст (str), даже если человек ввёл цифры. Чтобы получить число, текст нужно преобразовать:
int(...)– в целое число;float(...)– в дробное.
age = int(input()) # ждём целое число
print("Через 5 лет вам будет", age + 5)
Если убрать int, то age останется текстом, и age + 5 приведёт к ошибке: Python не умеет складывать текст и число. С этой ошибкой мы разберёмся в следующем уроке.
Шаг 5. [ТЕСТ · один ответ] B2-03
Чем отличается 5 от "5" в Python?
- ⬤
5– это число, с ним можно считать;"5"– это текст в кавычках, и+его не складывает, а склеивает ✔ - ◯ Ничем – Python понимает их одинаково
- ◯ Наоборот:
"5"– это число, а5– текст - ◯
5можно вывести черезprint, а"5"нельзя
Подсказка при ошибке: кавычки превращают значение в текст. 5 + 5 даёт 10, а "5" + "5" даёт "55". Поэтому числа, полученные из input(), оборачивают в int().
Шаг 6. [КОД] B2-04. Приветствие по имени
Условие. Программа спрашивает имя и здоровается. Считайте имя через input() и выведите приветствие. Ввод: одна строка – имя. Вывод: Здравствуйте, <имя> (имя через пробел после запятой). Пример: ввод Лиза → вывод Здравствуйте, Лиза.
Шаблон кода:
::code
name = input()
# выведите приветствие
Тесты:
def generate():
return ['Лиза', 'Мария', 'Иван Петров']
def solve(dataset):
return "Здравствуйте, " + dataset.strip()
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B2-04_privetstvie.py. Подсказка: print("Здравствуйте,", name) выведет текст и значение переменной через пробел.
Шаг 7. [КОД] B2-05. Сумма двух чисел
Условие. Даны два целых числа, каждое на своей строке. Выведите их сумму. Ввод: две строки, в каждой целое число. Вывод: одно число – сумма. Пример: ввод 3 и 5 → вывод 8.
Шаблон кода:
::code
a = int(input())
b = int(input())
# выведите сумму
Тесты:
def generate():
return ['3\n5', '10\n20', '-4\n9', '0\n0']
def solve(dataset):
a, b = dataset.split('\n')
return str(int(a) + int(b))
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B2-05_summa.py. Подсказка: не забудьте int() вокруг input() – иначе + склеит две строки ("3" + "5" даст "35", а не 8).
Шаг 8. [ТЕКСТ · Итог] Что мы умеем
- Переменная – коробка с ярлыком:
имя = значение. - У значений есть типы:
int(целое),float(дробное),str(текст). - Число пишут без кавычек, текст – в кавычках; для них
+работает по-разному. input()спрашивает данные у пользователя и всегда возвращает текст; для числа нуженint()илиfloat().
Дальше – урок 2.3: научимся считать (арифметика) и собирать текст из частей.
Урок 2.3. Вычисления и работа со строками
Шаги урока (Stepik): Видео → Текст (арифметика) → Текст (склейка текста) → Код (B2-06) → Код (B2-07) → Почини (B2-FIX-01) → Итог.
Переменные умеют хранить значения. Теперь научим программу считать и собирать текст из частей – это нужно почти в каждой задаче.
Шаг 1. [ВИДЕО] Калькулятор и сборка текста
Хронометраж ~2:50. Скринкаст в PyCharm.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:20 | Пустой main.py | «Python отлично считает. Сейчас используем его как калькулятор, а потом соберём из чисел и текста готовую фразу.» |
| 0:20–1:10 | print(2 + 3), print(10 - 4), print(6 * 7), print(20 / 8) | «Плюс, минус, звёздочка – умножение, косая черта – деление. Обратите внимание: деление всегда даёт дробное число – 20 / 8 это 2.5.» |
| 1:10–1:45 | print(17 // 5) → 3, print(17 % 5) → 2 | «Две косые черты – это деление нацело, а процент – остаток от деления. 17 // 5 это 3, остаток 2. Пригодится дальше в курсе.» |
| 1:45–2:30 | price = 50 · count = 3 · print("Итого:", price * count) | «Считать можно и с переменными. Цена, количество – умножаем, выводим результат рядом с подписью через запятую.» |
| 2:30–2:50 | name = "Лиза" · print("Привет, " + name + "!") | «А текст можно склеивать плюсом. Главное – не путать: плюс между числами считает, между строками – склеивает.» |
Шаг 2. [ТЕКСТ] Арифметика
Python считает обычными знаками:
| Знак | Действие | Пример | Результат |
|---|---|---|---|
+ | сложение | 2 + 3 | 5 |
- | вычитание | 10 - 4 | 6 |
* | умножение | 6 * 7 | 42 |
/ | деление | 20 / 8 | 2.5 |
// | деление нацело | 17 // 5 | 3 |
% | остаток от деления | 17 % 5 | 2 |
Два момента, которые удивляют новичков:
- деление
/всегда даёт дробное число (float):10 / 2это5.0, а не5; //и%работают в паре:17 // 5это3(сколько раз пятёрка помещается в 17), а17 % 5это2(что осталось).
Считать можно и с переменными:
price = 50
count = 3
print("Итого:", price * count) # Итого: 150
Шаг 3. [ТЕКСТ] Собираем текст из частей
Часто нужно вывести фразу, в которой есть и текст, и значение переменной. Есть два простых способа.
Способ 1 – запятая в print (уже знаком): значения выводятся через пробел.
name = "Лиза"
print("Привет,", name) # Привет, Лиза
Способ 2 – склейка строк плюсом. Знак + соединяет строки в одну. Так можно управлять текстом точнее – например, поставить восклицательный знак вплотную:
name = "Лиза"
print("Привет, " + name + "!") # Привет, Лиза!
Важная тонкость: плюсом склеиваются только строки. Склеить текст с числом напрямую нельзя – Python выдаст ошибку. Если очень нужно, число превращают в текст функцией str():
age = 12
print("Возраст: " + str(age)) # Возраст: 12
На практике для простого вывода удобнее запятая, а склейку берут, когда нужно собрать строку без лишних пробелов.
Шаг 4. [КОД] B2-06. Сантиметры в метры
Условие. Дана длина в сантиметрах (целое число). Переведите её в метры и выведите результат. Ввод: одно целое число – сантиметры. Вывод: длина в метрах (дробное число). Пример: ввод 250 → вывод 2.5.
Шаблон кода:
::code
cm = int(input())
# переведите в метры и выведите
Тесты:
def generate():
return ['250', '100', '30', '7']
def solve(dataset):
return str(int(dataset) / 100)
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B2-06_cm_v_metry.py. Подсказка: в метре 100 сантиметров – разделите на 100. Деление / сразу даст дробное число.
Шаг 5. [КОД] B2-07. Стоимость покупки
Условие. Известны цена одного билета и количество билетов. Посчитайте, сколько нужно заплатить. Ввод: две строки – цена и количество (целые числа). Вывод: общая стоимость. Пример: ввод 50 и 3 → вывод 150.
Шаблон кода:
::code
price = int(input())
count = int(input())
# выведите общую стоимость
Тесты:
def generate():
return ['50\n3', '120\n2', '7\n0', '15\n10']
def solve(dataset):
price, count = dataset.split('\n')
return str(int(price) * int(count))
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B2-07_stoimost.py. Подсказка: общая стоимость – это цена, умноженная на количество.
Шаг 6. [ПОЧИНИ] B2-FIX-01. Текст вместо числа
Условие. Программа должна прибавить к введённому числу 5 и вывести результат. Но при запуске она падает с ошибкой TypeError – Python не может сложить текст и число. Найдите причину и почините.
Сломанный шаблон (::code):
age = input()
print(age + 5)
Ввод: одно целое число. Вывод: число, увеличенное на 5. Пример: ввод 10 → вывод 15.
Тесты:
def generate():
return ['10', '14', '7', '0']
def solve(dataset):
return str(int(dataset) + 5)
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B2-FIX-01_zabyli_int.py. Подсказка: input() возвращает текст. Чтобы считать, оберните его в int(): age = int(input()).
Шаг 7. [ТЕКСТ · Итог] Что мы умеем
- Python считает знаками
+ - * /, а ещё есть//(деление нацело) и%(остаток). - Деление
/всегда даёт дробное число. - Текст собирают из частей: через запятую в
printили склейкой+(только для строк; число превращают в текст черезstr()). - Типичная ошибка – забыть
int()уinput(): тогда вместо сложения получается склейка илиTypeError.
Дальше – Блок 3: научим программу принимать решения с помощью условий if.
Урок 3.1. Сравнения и условие if
Шаги урока (Stepik): Видео → Текст (сравнения) → Текст (if/else) → Тест (B3-02) → Код (B3-01) → Почини (B3-FIX-01) → Итог.
До сих пор программа выполняла все команды подряд. Теперь научим её принимать решения: делать одно, если условие верно, и другое – если нет.
Шаг 1. [ВИДЕО] Программа, которая решает сама
Хронометраж ~2:50. Скринкаст в PyCharm.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:25 | Пустой main.py | «Иногда программа должна поступать по-разному. Если денег хватает – покупаем, если нет – отказываем. Сегодня научим Python проверять условие и выбирать, что делать.» |
| 0:25–1:10 | print(5 > 3) → True, print(2 > 3) → False | «Сравнения. Больше, меньше, равно. Python отвечает одним из двух слов: True – верно, False – неверно. Это и есть проверка условия.» |
| 1:10–2:10 | Набираем if/else с отступом | «Команда if – «если». После условия двоеточие, а ниже с отступом – что делать, когда условие верно. После else – что делать в остальных случаях. Отступ для Python важен: он показывает, что строки относятся к if.» |
| 2:10–2:50 | Меняем число, видим разные ветки | «Поменяем число – и программа пойдёт по другой ветке. Выполнится только одна. Дальше – ваши задания.» |
Шаг 2. [ТЕКСТ] Сравнения дают True или False
Чтобы что-то решить, программа сначала сравнивает значения. Любое сравнение даёт одно из двух значений: True (верно) или False (неверно).
| Запись | Что значит | Пример | Результат |
|---|---|---|---|
== | равно | 5 == 5 | True |
!= | не равно | 5 != 3 | True |
> | больше | 2 > 7 | False |
< | меньше | 2 < 7 | True |
>= | больше или равно | 5 >= 5 | True |
<= | меньше или равно | 9 <= 4 | False |
Главная ловушка новичка: равенство – это ==, два знака. Один знак = означает «положить значение в переменную» (как в Блоке 2), а сравнение «равно ли» – это ==.
И помните разницу из Блока 2: число и текст – не одно и то же. 5 == "5" даёт False: слева число, справа текст.
Шаг 3. [ТЕКСТ] if и else: развилка
if по-русски – «если». Записывают так:
n = 4
if n % 2 == 0:
print("чётное")
else:
print("нечётное")
Как это читается:
- после
ifпишут условие и ставят двоеточие; - строки, которые выполняются при верном условии, пишут с отступом (обычно 4 пробела);
- после
else:– с отступом то, что делать, когда условие неверно.
Выполнится только одна ветка – та, что подходит:
Python проверяет условие: верно – идёт по ветке if, неверно – по ветке else.
На практике. Отступ для Python – не украшение, а часть кода. PyCharm ставит его сам после двоеточия. Если отступ сбить, программа не запустится – это одна из самых частых ошибок в начале.
Шаг 4. [ТЕСТ · один ответ] B3-02
Какое выражение даёт True?
- ⬤ 5 > 3 ✔
- ◯ 10 < 2
- ◯ 3 != 3
- ◯ 5 == "5"
Подсказка при ошибке: сравнение отвечает «верно/неверно». 3 != 3 – неверно (числа равны), а 5 == "5" – неверно (число и текст не равны).
Шаг 5. [КОД] B3-01. Чётное или нечётное
Условие. Дано целое число. Выведите чётное, если оно делится на 2 без остатка, иначе – нечётное. Ввод: одно целое число. Вывод: чётное или нечётное. Пример: 4 → чётное; 7 → нечётное.
Шаблон кода:
::code
n = int(input())
# проверьте остаток от деления на 2 и выведите ответ
Тесты:
def generate():
return ['4', '7', '0', '-3']
def solve(dataset):
return "чётное" if int(dataset) % 2 == 0 else "нечётное"
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B3-01_chet_nechet.py. Подсказка: остаток от деления на 2 даёт %. Если n % 2 == 0 – число чётное.
Шаг 6. [ПОЧИНИ] B3-FIX-01. Один знак или два?
Условие. Программа должна проверить, равно ли число десяти, и вывести да или нет. Но она не запускается: в условии перепутаны знаки. Почините.
Сломанный шаблон (::code):
n = int(input())
if n = 10:
print("да")
else:
print("нет")
Ввод: одно целое число. Вывод: да, если число равно 10, иначе нет. Пример: 10 → да; 7 → нет.
Тесты:
def generate():
return ['10', '7', '0']
def solve(dataset):
return "да" if int(dataset) == 10 else "нет"
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B3-FIX-01_ravno.py. Подсказка: «равно ли» – это == (два знака). Один знак = Python понимает иначе.
Шаг 7. [ТЕКСТ · Итог] Что мы умеем
- Сравнения (
== != < > <= >=) даютTrueилиFalse. if условие:– выполнить ветку, когда условие верно;else:– в остальных случаях.- Строки внутри
if/elseпишут с отступом. - Равенство – это
==, а не=.
Дальше – урок 3.2: что делать, когда вариантов больше двух (elif).
Урок 3.2. Несколько веток: elif
Шаги урока (Stepik): Видео → Текст (elif) → Код (B3-03) → Код (B3-04) → Код (B3-05) → Итог.
Часто вариантов больше двух: не «да/нет», а «красный / жёлтый / зелёный». Для этого есть elif – «иначе если».
Шаг 1. [ВИДЕО] Когда вариантов много
Хронометраж ~2:40. Скринкаст в PyCharm.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:25 | if/else из прошлого урока | «if/else выбирает из двух. А если вариантов три или больше? Скажем, оценка: отлично, хорошо, удовлетворительно. Тут поможет elif.» |
| 0:25–1:30 | Пишем if … elif … elif … else | «elif – это «иначе если». Python проверяет условия по порядку сверху вниз и выполняет первое подходящее, остальные пропускает. Если ни одно не подошло – ветка else.» |
| 1:30–2:40 | Меняем баллы, видим разные ответы | «Порядок важен: условия идут от старшего к младшему. Поменяем число – ответ меняется. Дальше – практика.» |
Шаг 2. [ТЕКСТ] elif – «иначе если»
Когда вариантов больше двух, между if и else добавляют сколько угодно веток elif:
score = 75
if score >= 85:
print("отлично")
elif score >= 70:
print("хорошо")
elif score >= 50:
print("удовлетворительно")
else:
print("неудовлетворительно")
Как Python это выполняет:
- проверяет условия по порядку, сверху вниз;
- выполняет первое, которое оказалось
True, и дальше проверять перестаёт; - если ни одно не подошло – выполняет
else.
Поэтому порядок веток важен. Здесь условия идут от большего балла к меньшему: при 90 сразу сработает >= 85, а до >= 70 дело не дойдёт.
На практике.elifне обязателен, иelseтоже. Но если варианты покрывают все случаи, удобно последний оставить подelse– «во всех остальных случаях».
Шаг 3. [КОД] B3-03. Сравните два числа
Условие. Даны два целых числа. Сравните их и выведите знак: <, > или =. Ввод: два числа, каждое на своей строке. Вывод: один символ <, > или =. Пример: 3 и 5 → <; 4 и 4 → =.
Шаблон кода:
::code
a = int(input())
b = int(input())
# сравните a и b и выведите знак
Тесты:
def generate():
return ['3\n5', '9\n2', '4\n4', '-1\n0']
def solve(dataset):
a, b = (int(x) for x in dataset.split('\n'))
return "<" if a < b else (">" if a > b else "=")
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B3-03_sravnenie.py. Подсказка: три случая – a < b, a > b и равны. Это if … elif … else.
Шаг 4. [КОД] B3-04. Оценка по баллам
Условие. Дан балл от 0 до 100. Выведите оценку: отлично (85 и выше), хорошо (70–84), удовлетворительно (50–69), иначе неудовлетворительно. Ввод: целое число. Вывод: одно слово-оценка. Пример: 90 → отлично; 55 → удовлетворительно.
Шаблон кода:
::code
score = int(input())
# выведите оценку по баллам
Тесты:
def generate():
return ['90', '75', '55', '30', '85', '50', '49']
def solve(dataset):
s = int(dataset)
if s >= 85:
return "отлично"
if s >= 70:
return "хорошо"
if s >= 50:
return "удовлетворительно"
return "неудовлетворительно"
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B3-04_ocenka.py. Подсказка: ветки идут от большего балла к меньшему. Тогда хватает проверять только нижнюю границу: >= 85, >= 70, >= 50.
Шаг 5. [КОД] B3-05. Светофор
Условие. Дан цвет светофора. Выведите действие: красный → Стойте, жёлтый → Приготовьтесь, зелёный → Идите. Для любого другого слова – Неизвестный сигнал. Ввод: одно слово (цвет). Вывод: действие. Пример: зелёный → Идите.
Шаблон кода:
::code
color = input()
# выведите действие по цвету
Тесты:
def generate():
return ['красный', 'жёлтый', 'зелёный', 'синий']
def solve(dataset):
c = dataset.strip()
return {"красный": "Стойте", "жёлтый": "Приготовьтесь",
"зелёный": "Идите"}.get(c, "Неизвестный сигнал")
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B3-05_svetofor.py. Подсказка: сравнивайте color с каждым цветом через ==. Последняя ветка else – на случай неизвестного слова.
Шаг 6. [ТЕКСТ · Итог] Что мы умеем
elif(«иначе если») добавляет дополнительные ветки междуifиelse.- Python проверяет условия сверху вниз и выполняет первое подходящее.
- Порядок веток важен: обычно идут от частного/старшего к общему/младшему.
Дальше – урок 3.3: объединим несколько условий с помощью and, or, not.
Урок 3.3. Логика: and, or, not
Шаги урока (Stepik): Видео → Текст (and/or/not) → Код (B3-06) → Код (B3-07) → Чтение (B3-08) → Итог.
Иногда решение зависит сразу от нескольких условий: «если денег хватает и магазин открыт». Объединять условия помогаютand,or,not.
Шаг 1. [ВИДЕО] Несколько условий сразу
Хронометраж ~2:40. Скринкаст в PyCharm.
| Время | На экране | Голос за кадром (дословно) |
|---|---|---|
| 0:00–0:25 | Два отдельных if | «Бывает, что условий несколько и важны они вместе. Например, число должно быть больше 0 и меньше 100. Объединим условия в одно.» |
| 0:25–1:30 | and, or, not на примерах | «and – «и», верно, когда верны оба условия. or – «или», верно, когда верно хотя бы одно. not – «не», переворачивает: из True делает False.» |
| 1:30–2:40 | if 0 < x and x < 100: | «Условия пишем по обе стороны от and. Если оба верны – заходим внутрь. Дальше попробуете сами.» |
Шаг 2. [ТЕКСТ] and, or, not
Эти слова объединяют несколько условий в одно.
| Слово | Когда даёт True | Пример | Результат |
|---|---|---|---|
and | когда верны оба условия | 5 > 0 and 5 < 100 | True |
or | когда верно хотя бы одно | 5 < 0 or 5 < 100 | True |
not | переворачивает значение | not (5 > 0) | False |
Пример: число в диапазоне от 1 до 10 (включительно):
x = 7
if x >= 1 and x <= 10:
print("в диапазоне")
else:
print("вне диапазона")
Несколько условий можно комбинировать, но не усложняйте без нужды: чем проще условие, тем легче его прочитать.
На практике.andверно, только когда верны обе части;orдостаточно одной. Частая путаница новичка – перепутать их местами. Если сомневаетесь, проговорите условие словами: «и то, и то» – этоand, «хотя бы одно» – этоor.
Шаг 3. [КОД] B3-06. Високосный год
Условие. Дан год. Определите, високосный ли он. Год високосный, если делится на 4, но не делится на 100, или делится на 400. Выведите да или нет. Ввод: целое число (год). Вывод: да или нет. Пример: 2020 → да; 1900 → нет; 2000 → да.
Шаблон кода:
::code
year = int(input())
# проверьте правило високосного года
Тесты:
def generate():
return ['2020', '1900', '2000', '2023', '2024']
def solve(dataset):
y = int(dataset)
leap = (y % 4 == 0 and y % 100 != 0) or y % 400 == 0
return "да" if leap else "нет"
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B3-06_visokosny.py. Подсказка: правило – (year % 4 == 0 and year % 100 != 0) or year % 400 == 0. Скобки задают порядок.
Шаг 4. [КОД] B3-07. Число в диапазоне
Условие. Даны три числа: x, а затем границы a и b (a ≤ b). Выведите да, если x попадает в диапазон от a до b включительно, иначе нет. Ввод: три числа, каждое на своей строке: x, a, b. Вывод: да или нет. Пример: 5, 1, 10 → да; 15, 1, 10 → нет.
Шаблон кода:
::code
x = int(input())
a = int(input())
b = int(input())
# проверьте, что x не меньше a и не больше b
Тесты:
def generate():
return ['5\n1\n10', '15\n1\n10', '1\n1\n10', '10\n1\n10']
def solve(dataset):
x, a, b = (int(v) for v in dataset.split('\n'))
return "да" if a <= x <= b else "нет"
def check(reply, clue):
return reply.strip() == clue.strip()
Эталон: solutions/B3-07_diapazon.py. Подсказка: нужно сразу два условия – x >= a и x <= b. Соедините их через and.
Шаг 5. [ЧИСЛЕННАЯ ЗАДАЧА] B3-08. Что выведет программа?
Условие. Вставьте программу, запустите и впишите число, которое появилось в консоли.
a = 7
b = 3
if a > b and a % 2 == 1:
print(1)
else:
print(0)
Ответ: 1 Подсказка: проверьте обе части условия по отдельности, а потом соедините через and. 7 > 3 – верно; 7 % 2 == 1 – тоже верно.
Шаг 6. [ТЕКСТ · Итог] Что мы умеем
and– верно, когда верны оба условия;or– когда верно хотя бы одно;not– переворачивает.- Несколько условий соединяются в одно; скобки задают порядок.
- Условие любой сложности всё так же даёт
TrueилиFalse.
Дальше – Блок 4: научимся повторять действия много раз с помощью циклов.