Главная/Курсы/Python/Портфолио
// портфолио · Python и Telegram-боты

Восемь проектов — и бот, который живёт в телефоне

Первая половина года — консольные программы, на которых осваивается язык. Вторая — боты, которыми можно пользоваться и делиться с друзьями прямо из мессенджера.

8 проектов за год32 занятия4 Telegram-бота
// чему_научились_за_год

Что стоит за этими проектами

Боты — это то, ради чего ребята приходят на курс. Но за каждым стоит половина года работы с языком: без базы получился бы «скопируй код и запусти».

[01]

Основы языка

  • переменные и типы данных
  • условия и циклы
  • строки, списки, словари
  • функции и модули
  • файлы и обработка ошибок
[02]

Программа с интерфейсом

  • декораторы
  • обработка сообщений и команд
  • кнопки и меню
  • отправка картинок и файлов
  • хранение состояния пользователя
[03]

Работа с сетью

  • HTTP-запросы и API
  • формат JSON
  • обработка ошибок сервера
  • проектирование своего проекта
  • публикация бота
// работы_курса

Как растут проекты за год

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

Первые программы
// модуль_01 · консоль

Первые программы

угадай число · бот-собеседник

Две первые программы курса. В одной компьютер загадывает число, а игрок отгадывает его с подсказками. Во второй — простой текстовый собеседник, который отвечает на введённые фразы. Обе написаны с нуля на первом же модуле.

// что в этих работах
  • случайное число и подсказки «больше — меньше»
  • подсчёт попыток и статистика
  • обработка ввода пользователя
  • ответы на разные фразы
  • цикл диалога до выхода
// что написано руками ребят

Обе программы ребята пишут полностью самостоятельно — это первый опыт, когда код делает что-то интерактивное, а не просто выводит текст.

PythonУсловияЦиклыrandom
Викторина и RPG-магазин
// модули_02–03 · структуры данных

Викторина и RPG-магазин

работа со списками и словарями

Два проекта, которые учат хранить данные. Викторина держит вопросы и ответы в списках, считает очки и разбирает ошибки. RPG-магазин — уже словари: витрина с ценами, кошелёк игрока, рюкзак с покупками и возможность продать предмет обратно.

// что в этих работах
  • банк вопросов и вариантов ответа
  • подсчёт очков и разбор ошибок
  • витрина товаров с ценами
  • кошелёк и внутриигровая экономика
  • рюкзак игрока
  • продажа предметов обратно
// что написано руками ребят

Здесь ребята впервые сами выбирают структуру данных под задачу: почему для вопросов подходит список, а для товаров с ценами — словарь.

СпискиСловариКортежиСортировка
Текстовый квест
// модуль_04 · функции и файлы

Текстовый квест

финал первого полугодия · сохранения

Итоговый проект базовой части: игра-квест с несколькими комнатами и вариантами действий. Прогресс сохраняется в файл, поэтому игру можно закрыть и вернуться позже. Код разнесён по функциям — иначе такой проект уже не удержать в одном куске.

// что в этих работах
  • несколько комнат и сценариев
  • выбор действий игроком
  • сохранение и загрузка прогресса
  • защита от неверного ввода
  • код, разбитый на функции
// что написано руками ребят

Структуру квеста ребята придумывают сами. Здесь же впервые сталкиваются с задачей «программа не должна падать, что бы пользователь ни ввёл».

ФункцииФайлыtry/exceptМодули
Магический шар судьбы
// модуль_05 · первый бот

Магический шар судьбы

первый проект в Telegram

Момент, когда программа переезжает из чёрного окна консоли в мессенджер. Бот принимает любой вопрос и выдаёт предсказание, понимает команды и красиво оформляет ответы. Первый проект, которым можно поделиться с друзьями одной ссылкой.

// что в этих работах
  • обработка любых сообщений
  • команды /start и /help
  • категории предсказаний
  • оформленное приветствие
  • эмодзи и форматирование текста
// что написано руками ребят

Перед этим проектом разбираем декораторы — чтобы синтаксис @bot.message_handler не остался магией. Логика бота пишется учениками с нуля.

TelegramДекораторыКомандыrandom
Смотреть на GitHub →
Бот-тамагочи
// модуль_06 · интерфейс

Бот-тамагочи

кнопки, картинки, состояние

Виртуальный питомец с кнопками «покормить», «поиграть», «уложить спать». У питомца есть показатели сытости и настроения, которые меняются со временем, а бот присылает картинки и стикеры в зависимости от состояния.

// что в этих работах
  • кнопки под полем ввода
  • inline-кнопки под сообщением
  • показатели сытости и настроения
  • изменение состояния со временем
  • отправка картинок и стикеров
  • реакция на действия игрока
// что написано руками ребят

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

КнопкиМедиаСловариСостояние
Смотреть на GitHub →
Бот-информер
// модуль_07 · данные из интернета

Бот-информер

погода по любому городу · работа с API

Бот выходит в интернет. Пользователь пишет название города — бот обращается к погодному сервису, разбирает ответ и присылает температуру, описание погоды и подходящий эмодзи. Обрабатывает и ошибки: если города не существует, честно об этом скажет.

// что в этих работах
  • запрос к внешнему сервису
  • разбор ответа в формате JSON
  • погода по названию города
  • эмодзи в зависимости от погоды
  • обработка ошибки «город не найден»
  • прогноз на несколько дней
// что написано руками ребят

Разбор JSON и обработка ошибок сервера — код учеников. Это первый проект, где программа зависит от чего-то за пределами компьютера и должна быть к этому готова.

APIrequestsJSONОбработка ошибок
Смотреть на GitHub →
Собственные боты учеников
// модуль_08 · итоговый проект

Собственные боты учеников

финал года · у каждого свой проект

Последний модуль каждый работает над своей идеей: от планировщика задач и дневника до бота-магазина и викторины. Проект проходит полный путь — проектирование, разработка, тестирование и защита перед группой. Бот остаётся у ребёнка и продолжает работать после курса.

// что в этих работах
  • своя идея и сценарий работы
  • проектирование до написания кода
  • хранение данных пользователей
  • обработка ошибок и защита ввода
  • защита проекта перед группой
// что написано руками ребят

Проект полностью авторский: преподаватель помогает с техническими трудностями, но идею, структуру и код ребёнок делает сам. Это и есть главный результат года.

ПроектированиеПолный циклПубликация
Смотреть на GitHub →
// все_работы
// github_академии

Здесь лежит весь код

Проекты учеников мы выкладываем в открытый репозиторий академии. Можно посмотреть исходный код и запустить программу у себя.

  • ✓Код всех проектов курса — от первых консольных программ до ботов
  • ✓Готовые боты — можно изучить структуру и развернуть свою копию
  • ✓Итоговые работы ребята публикуют под своим аккаунтом и получают профиль разработчика
Открыть GitHub академии →
> git clone codegap
✓ код консольных программ
✓ исходники Telegram-ботов
✓ итоговые проекты учеников
// открыто для всех

Хотите, чтобы у ребёнка был свой бот?

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