183826

11 проектов, которые должен разработать каждый питонист

Уверены, что хорошо знаете Python? Проверьте, сможете ли вы разработать эти проекты на Python. Если нет − бегом читать наши туториалы.

Веб-проекты на Python

Агрегатор контента

Контент помогает нам принимать решения − весь поток информации, публикуемый в блогах, соцсетях, на экране, является контентом. Единственный способ оставаться в курсе событий, не терять компетенцию − постоянно потреблять контента. Но поиск утомителен.

Для этого создают агрегаторы контента. Их суть в том, чтобы собирать разные, релевантные вам статьи, посты в соцсетях и собирать всё в одном месте.

Примеры реализации

Техническая реализация

Определитесь, с каких сайтов контент-агрегатор будет загружать информацию. Можно использовать библиотеки Requests для отправки HTTP-запросов, BeautifulSoup для анализа материалов и выделения наиболее подходящей информации.

Чтобы агрегация контента происходила в фоновом режиме, стоит обратить внимание на библиотеки Celery или Apscheduler.

А еще подумайте о базе данных, в которой будет храниться собранная информация.

Regex Query Tool

Все мы читаем тексты. И когда у них плохая структура, нам не нравится. Из-за этого мы не всегда можем найти нужную информацию.

С помощью инструмента Regex Query Tool пользователи могут быстро проверить правильность своих строк регулярных выражений в интернете.

Было бы неплохо добавить функцию замены совпадений.

Примеры реализации

Техническая реализация

Такие проекты на Python нужны, чтобы сообщать пользователю, правильно ли он ввёл данные. Можно сделать так, чтобы сервис давал положительный или отрицательный ответ, вроде Query String Is Valid, выделяя положительный ответ зеленым цветом, а отрицательный − красным.

Реализовывать инструмент запросов с нуля необязательно. Можно обратиться к стандартной библиотеке Re. Она будет возвращать None при отсутствии совпадений или возвращать совпавшие строки.

Не все понимают, как работают регулярные выражения, поэтому стоит создать раздел с объяснением принципов их работы.

URL Shortener

URL-адреса бывают очень длинными, это неудобно. Когда люди делятся ссылками в мессенджерах или даже пытаются запомнить URL, неаккуратные ссылки раздражают.

Вот как это работает: URL Shortener уменьшает количество символов в URL. xyz.com/wwryb78&svnhkn%sghq?sfiyh может быть сокращено до xyz.com/piojwr.

Будет ещё круче , если вы позволите юзерам самостоятельно настраивать сгенерированные URL-адреса. URL xyz.com/mysite выглядит на порядок лучше, чем случайно сгенерированный xyz.com/piojwr.

А еще Google прекратил поддержку своего сервиса goo.gl, так что у вас есть шанс сделать свой продукт популярнее.

Примеры реализации

Техническая реализация

Основная задача, которую будет выполнять приложение, заключается в сокращении URL-адресов с последующей переадресацией на исходный URL-адрес.

В приложении пользователи будут вводить исходный URL-адрес и в результате получат новый сокращенный URL-адрес. Для этого стоит использовать комбинацию random и string.

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

Post-It Note

Мы постоянно о чём-то думаем, а ещё постоянно забываем. Один из способов запомнить − записать, чтобы обдумать позднее.

Вживую люди пишут на стикерах, приклеивают их к своим компьютерам. Но такую задачу вполне мог бы выполнять онлайн-сервис, тем более что в отличие от живых записей информация в веб-приложении доступна в любой момент, а ещё её не потеряешь.

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

Примеры реализации

Техническая реализация

У каждого пользователя будут свои заметки, поэтому в приложении должна быть функция создания учетной записи. Это гарантирует приватность информации.

Django поставляется с системой аутентификации пользователя, так что это может быть одним из способов реализации идеи. Можно также использовать другие фреймворки, например, Bottle или Flask. Но вы должны самостоятельно внедрить систему аутентификации пользователей.

Юзерам может потребоваться разделить заметки по разным разделам: полезно реализовать классификацию. Например, кому-то могут понадобиться заметки об алгоритмах и структурах данных, поэтому нужно дать возможность быстро найти информацию по теме, а не листать веб-страницу.

Опять же, вам нужно где-то хранить поступающую информацию. Для MySQL можно использовать MySQLdb, а для PostgreSQL − Psycopg2.

Викторина

Викторины и тесты помогают проверить и углубить знания в разных областях. Например, вам не нужно знать о языке Python всё. Зато тестирование поможет узнать что-нибудь новое или разобраться в том, что вы не понимаете.

Администраторы будут выкладывать викторины и тесты, а простые пользователи проверять себя. Ещё лучше, если сделать ограниченное время на прохождение, рейтинг пользователей и возможность делиться результатами тестов с друзьями.

Примеры реализации

Техническая реализация

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

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

GUI-проекты на Python

Сигнализация

Идея в том, чтобы имитировать звук сигнализации при каком-либо условии. Этим условием может быть наступление какого-то времени или разрядка ноутбука до 10%.

Примеры реализации

Техническая реализация

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

Для воспроизведения аудио можно использовать библиотеку Pygame.

Файловый менеджер

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

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

Кстати, неплохо бы добавить разные варианты просмотра и сортировки файлов, поиск.

Примеры реализации

Техническая реализация

Для создания уникальных пользовательских интерфейсов стоит использовать библиотеку PySimpleGUI.

Стоит также подумать о реализации таких функций, как создание новых папок или пустых текстовых файлов, их перемещения.

При реализации проекта стоит обратить внимание на библиотеки Sys, OS и Shutil. Они позволяют выполнять процессы в фоновом режиме, пока пользователь занимается чем-то другим.

Контроль расходов

Каждый день мы совершаем по несколько платёжных операций. Если их не контролировать, можно не заметить, как деньги уходят впустую. Чтобы избежать ненужных трат, придумали приложения для отслеживания расходов.

Наиболее продвинутые из них не просто показывают список трат за определённы период, но и подсказывают, какие категории расходов стоит сократить.

Пользователи смогут устанавливать бюджет и отслеживать свои расходы, чтобы принимать более ответственные финансовые решения.

Было бы неплохо добавить напоминания о необходимости анализа расходов.

Примеры реализации

Техническая реализация

Для построения системы отслеживания расходов могут пригодиться Pandas и Matplotlib.

Pandas − для анализа данных, а Matplotlib − для построения графиков. Графики дают пользователям визуальное представление о своих расходах, а визуальное представление обычно легче понять.

Что касается хранения информации, то стоит обратиться к SQLite и её модулю SQlite3.

Командная строка

Контакты

Вы еще записываете контакты на бумагу? Странная затея: блокнот может потеряться, и его нужно носить с собой.

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

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

Примеры реализации

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

Техническая реализация

Основная цель проекта − сохранить контактные данные. Важно настроить команды, которые пользователи могут использовать для ввода контактных данных. Вы можете использовать Argparse или Click командную строку базу. Они абстрагируют много сложных вещей, поэтому вам нужно сосредоточиться только на логике, которая будет выполняться при выполнении команд.

Значительную часть работы будут выполнять Argparse и Click. Вам остаётся только подумать о логике выполнения команд. Вам также нужно реализовать удаления контактов, обновление информации и вывод списка сохранённых. Идеально, если они будут сортироваться по алфавиту или дате создания.

Проверка подключения к сайту

При переходе по ссылке, веб-страницы загружаются не всегда. Но обычно непонятно, в чем проблема: недоступен сам сайт или проблема на вашей стороне.

Здесь на помощь приходит приложение для проверки подключения к сайту. Сервис анализирует статус URL-адреса и сообщает его. Так можно не обновлять страницу N раз в ожидании загрузки сайта.

Но! Если отображать результаты в командной строке, пользователю нужно будет обновлять её вручную. Лучше потратить больше времени и реализовать уведомления о появлении доступа к сайту.

Примеры реализации

Техническая реализация

Для подключений можно использовать TCP или ICMP. Один из модулей, которые нужно проверить − Socket.

Фреймворки Docopt, Click или Argparse позволят изменять список сайтов для проверки. Ещё подумайте о введении интервалов для проверки, чтобы не перегружать систему.

Изменение имени файлов

Иногда все файлы в папке должны называться примерно одинаково. Например, File0001.jpg, где номера увеличиваются в зависимости от количества файлов в каталоге. Делать это вручную утомительно.

Наш сервис позволит пользователям автоматически переименовать большое количество файлов и не допустить случайных ошибок.

Кстати, иногда нужно переименовать лишь часть файлов в папке. Хорошо, если такая функция тоже будет.

Примеры реализации

Техническая реализация

Для манипуляций с файлами пригодятся библиотеки OS, Sys и Shutil.

Чтобы сервис понял, по какой системе нужно менять названия файлов, дайте ему шаблон. Если вы понимаете, как работают регулярные выражения, воспользуйтесь модулем Regex.

Банальная задача − назвать файлы по списку или привести их в общий вид путем изменения MyfilesXYZ, где XYZ − число. Это должно быть базовой функцией, чтобы не усложнять пользователям жизнь.

Понравилось разрабатывать подобные проекты на Python? Вам понравится:

Источник: Проекты на Python, которые сможет разработать любой Middle Python Developer на Realpython.

А у вас есть свой проект на Python? Расскажите о нем.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
11 декабря 2018

ООП на Python: концепции, принципы и примеры реализации

Программирование на Python допускает различные методологии, но в его основе...
admin
13 февраля 2017

Программирование на Python: от новичка до профессионала

Пошаговая инструкция для всех, кто хочет изучить программирование на Python...