что можно программировать на питоне
Язык программирования Python: преимущества, недостатки и область применения
Как устроен Python, чем он хорош, а также кто, как и зачем использует его в работе. Гайд для программистов и интересующихся Python.
Python — это скриптовый язык программирования. Он универсален, поэтому подходит для решения разнообразных задач и многих платформ, начиная с iOS и Android и заканчивая серверными ОС.
Преимущества Python
Это интерпретируемый язык — он не компилируется, то есть до запуска представляет из себя обычный текстовый файл. Программировать можно практически на всех платформах, язык хорошо спроектирован и логичен.
Разработка идёт в разы быстрее, потому что кода здесь куда меньше, чем на других языках. И ещё Python отлично подходит новичкам. Именно с него можно начать свой путь программиста, пройдя практический курс «Python-разработчик» от Skillbox.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Как используется Python
Его можно встретить в вебе и на мобильных устройствах, в приложениях и решениях, связанных с машинным обучением (нейросети и искусственный интеллект), а также в качестве встроенной системы.
Веб-разработка
Чаще всего Python используется в веб-разработке. Для работы с ним подключают фреймворки: Pyramid, Pylons, TurboGears, Flask, CherryPy и — самый популярный — Django.
Существуют и движки для создания сайтов на Python:
Также на Python пишут парсеры для сбора информации в интернете.
Программы
Хоть язык не компилируется, с помощью него создают десктопные программы. Вот, к примеру, что было разработано на Python:
Мобильные приложения
Мобильная разработка на Python менее популярна. Для Android чаще пишут на Java, C#, C++ или Kotlin, а для iOS — на Swift или Objective-C. На Python обычно программируют серверную часть приложения. Например, клиент Instagram для iOS написан на Objective-C, а сервер — на Python.
Многие компьютерные игры были полностью или частично написаны на Python. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:
Несмотря на возможность реализации пользовательского интерфейса и работы с графикой, на Python в основном пишут скрипты — например, взаимодействия персонажей, запуска сцен, а также обработки событий.
Встроенные системы (embedded systems)
На Python разрабатывают встроенные системы для различных устройств. Например, язык прижился в Raspberry Pi (компьютер размером с карту памяти) и в «Сбербанке» для управления банкоматами.
Еще проекты со встроенной системой на Python:
Язык применяется во встроенных системах станков с ЧПУ, средствах автоматического регулирования (температуры, расхода жидкостей, давления и так далее) и в телекоммуникационном оборудовании.
Создание скриптов
Python подходит для написания плагинов и скриптов к уже готовым программам. Например, для реализации игровой логики или создания дополнительных модулей. Скрипты на этом языки встраивают и в программы на других языках, чтобы автоматизировать какие-либо задачи.
Где используется Python
Python широко распространен во многих сферах: от системного администрирования до Data Science.
Системное администрирование
Системным администраторам Python нужен для автоматизации задач. Он простой, мощный и поддерживает специальные пакеты, которые повышают его эффективность. И, самое главное, он по умолчанию установлен на все серверы с ОС Linux.
Благодаря лаконичности Python можно быстро прочитать код и найти слабые места. Форматирование в языке — часть синтаксиса.
Научные исследования
В Python есть несколько библиотек, которые пригодятся для проведения исследований и вычислений:
Благодаря библиотекам и простоте освоения языка многие учёные выбирают Python — особенно он популярен у математиков и физиков.
Data Science
Python — один из самых используемых в Data Science языков. На нём пишут алгоритмы программ с машинным обучением и аналитические приложения. С помощью него обслуживают хранилища данных и облачные сервисы.
Также он помогает парсить данные из интернета. Например, в Google Python применяют для индексации сайтов.
Какие компании используют Python
В основном Python используется стартапами и компаниями, которые разрабатывают крупные проекты. Вот лишь часть огромного списка:
Кроме того, его используют в Instagram, Positive Technologies, Houdini, Facebook, Yahoo, Red Hat, Dropbox, Pinterest, Quora, Mail.ru и Яндексе.
Недостатки языка Python
Несмотря на все достоинства, у языка есть и недостатки.
Программы на Python считаются одними из самых медленных.
Приложения для iOS на Swift работают в 8,7 раз быстрее, чем на Python. Реализация PyPy по скорости близка к Java, но в ней есть не все возможности оригинального языка. Python не подходит для задач, требующих большого объёма памяти, — их лучше решать вставками на C или C++.
Сильная зависимость языка от системных библиотек
Из-за этого затрудняется перенос на другие системы. Для этих целей существует инструмент Virtualenv, но и он с недостатками: избыточность полных методов изоляции, костыли, дублирование системных библиотек.
Global Interpreter Lock (GIL) не позволяет выполнять несколько потоков Python одновременно в реализации CPython.
Однако GIL можно отключить на какое-то время, как это сделано в математическом пакете NumPy.
Трудоустройство и средняя зарплата Python-разработчика
По данным с hh.ru на начало 2019 года, в России
4500 вакансий для Python-разработчиков, из них
700 в Санкт-Петербурге. Это меньше, чем по запросу «Java» (
5500), но больше, чем по запросу «PHP» (
Тенденция в том, что Python медленно забирает позиции PHP с рынка веб-разработки. Хотя на PHP всё ещё написано около 80% всех сайтов в интернете.
Минимальная зарплата по России начинается с 70 000 рублей, а в Москве — с 80 000 рублей. В основном ищут опытных разработчиков, junior-специалисты менее востребованы.
На должность стажёра или младшего специалиста можно устроиться только в крупную компанию, а расположены они в больших городах типа Москвы и Санкт-Петербурга. Из-за этого новичкам крайне сложно устроиться в регионах — остаётся искать заказы на фрилансе.
Если вас заинтересовал Python, пройдите курс от Skillbox — тут вы не только получите необходимые знания и навыки, но и сможете составить привлекательное резюме и добавить дипломную работу в портфолио.
13 проектов для Python-программистов уровня intermediate
Изучение основ Python — прекрасный опыт. Но эйфория от изучения языка постепенно заменяется желанием создать что-то своими руками. И это нормально, но нужны идеи.
Проблема здесь в том, что некоторые проекты либо слишком просты, либо слишком сложны для разработчика среднего уровня. Эта статья — помощь программисту уровня intermediate. Она предоставляет несколько идей проектов, которые могут стать интересным вызовом для вас. Материал адаптирован на русский язык совместно с Алексеем Некрасовым, лидером направления Python в МТС, программным директором направления Python в Skillbox.
Прочитав статью, вы сможете узнать:
Выбор платформы
Сперва необходимо определиться с выбором одной из трех основных платформ — веб, десктоп или командная строка. Хотя, конечно, никто не отрицает возможности работать сразу со всеми тремя.
На Хабре нет смысла объяснять, что такое веб-приложения. Понятно, что оно доступно всегда с любого устройства и состоит из двух основных компонентов — фронтенда и бэкенда. Поскольку в статье речь идет о разработке на Python, то основное внимание уделяется бэкенду. Но фронтенд тоже нужен, поэтому используем знания HTML, CSS и немного JavaScript. Для простого фронтенда этого вполне достаточно.
Еще один вариант — создание и фронтенд- и бэкенд-компонентов на Python с использованием библиотеки anvil. Что касается фреймворков для работы, то можно порекомендовать Django и Flask в качестве одних из самых популярных.
В рамках профессии “Python-разработчик” мы обучаем не только делать веб-приложения, разбираться во фреймворках и библиотеках, но и системному подходу в их создании.
Для создания десктопных приложений на Python существуют специальные библиотеки. Одна из них PySimpleGUI, она хорошо подходит для разработчика среднего уровня. PyQt5 имеет больше возможностей, но потребует и больше времени для изучения.
ПО, которое вы разработаете, будет работать на всех ОС, включая Windows, Linux или Mac. Главное — скомпилировать проект в исполняемый файл для требуемой ОС.
Такие приложения работают в консоли при помощи ввода специальных команд. Эти приложения не имеют GUI, но в большинстве случаев они не менее мощные, чем приложения с графическим интерфейсом. Если хотите улучшить внешний вид консольного приложения, вот пара библиотек: Colorama и Colored. Фреймворки Docopt, Argarse и Click значительно упрощают процесс создания приложений.
Идеи для веб-приложений
Контент нужен всем и всегда. Для того чтобы быть в курсе интересующей темы, нужно мониторить большое количество ресурсов. Один из лучших способов сделать это — создание агрегатора контента, который парсит разные сайты и собирает данные в одном месте.
Примеры хороших контент-агрегаторов:
Во-первых, нужно знать, с каких сайтов вы собираетесь парсить контент. Во-вторых, потребуются библиотеки, включая Requests для отправки HTTP-запросов, а также BeautifulSoup для парсинга и сбора нужной информации.
Неплохо бы еще реализовать агрегацию контента в качестве фонового процесса, с чем могут помочь такие библиотеки, как APScheduler.
После того как мы спарсили контент, его придется где-то хранить, соответственно, нужно использовать базу данных. Можно использовать PostgreSQL для хранения метаданных, Elasticsearch для быстрого полнотекстового поиска по контенту (если это текстовый контент).
А если хотите сделать приятное пользователям, то можно добавить подписку, — и в конце дня все подписчики получат нужную информацию по электронной почте. С этой задачей вам помогут python модули smtplib и email.
В некоторых случаях нужен поиск данных в текстовом документе. Если задача нестандартная, то обычный инструмент поиска не подходит. Поэтому можно создать инструмент, основанный на регулярных выражениях — это и будет Regex Query Tool.
Регулярные выражения дают возможность задавать более общие условия, включая поиск любых дат, записанных в определенном виде. Когда регулярное выражение сопоставляет шаблоны с текстом, оно подсвечивает совпавшие части, сообщая о них пользователю. Соответственно, приложение ищет заданные строки, что гораздо быстрее, чем в текстовых редакторах.
Примеры такого инструмента:
Нужно добиться от приложения получения положительного или отрицательного ответа в ходе поиска. Это может быть «строка найдена» и «строка не найдена», выделенная определенными цветами.
Писать алгоритм с нуля не нужно, для этого можно использовать re- — стандартную библиотеку Python, которая будет возвращать найденные строки или None, если ничего не найдено.
Чтобы сделать приятно пользователю, можно добавить функцию, которая будет предлагать альтернативные варианты запросов, которые по смыслу похожи на изначальный. Возможно, пользователь просто ошибся в формулировке запроса.
Собственно, здесь все понятно уже по названию проекта. Его предназначение — превращать длинные и неудобные ссылки в короткие и красивые, уменьшая количество символов в URL-адресе.
В поле ввода приложения пользователи будут вводить исходный адрес, получая новый. Для создания сокращенного адреса можно использовать стандартные python модули random и string.
Для того, чтобы ссылки не «умирали» с течением времени, их нужно хранить в базе данных. При поступлении запроса приложение будет проверять, существует ли URL-адрес и перенаправлять на оригинал. Если адреса нет, то будет показываться страница 404.
Чтобы сделать приятное пользователю, стоит использовать настройку генерации URL-адреса, чтобы получалось нечто вроде xyz.com/mysiteURL вместо xyz.com/piojwrURL. Также можно добавить счётчик переходов по ссылке и возможность установки времени жизни ссылки.
Каждый день мы получаем огромное количество информации. Чтобы не забыть необходимое, стоит использовать стикеры и заметки. Проект Post-It Note посвящен созданию небольших напоминалок, которые пользователь может открыть при помощи любого браузера.
Главная задача проекта — предоставление пользователю пространства для наклеивания заметки. У каждого пользователя они свои, поэтому нужны учетные записи. К чужим заметкам доступа быть не должно.
Благодаря Django можно использовать систему аутентификации, не создавая ее с нуля. Кроме того, можно добавить еще и классификацию заметок, что увеличит полезность приложения для пользователей.
Еще одна важная задача — хранение данных каждого пользователя, что не получится реализовать без базы данных. Если вы выберете MySQL, то потребуется модуль MySQLdb или psycopg2-модуль для базы данных PostgreSQL. Если вдруг понадобится иная база данных, можно воспользоваться другими модулями.
Сделать приятно пользователю можно при помощи функции добавления времени для уведомлений.
Задача проекта — помочь пользователю проверить свои знания. Ну а приложение, о котором говорится ниже, позволяет создавать тесты и викторины. В приложении есть администраторы, которые создают тесты, и пользователи, отвечающие на вопросы.
После того, как пользователь прошел тест, приложение показывает итоговую оценку и правильные ответы. Если есть желание, можно ввести систему учетных записей, что позволит хранить результаты разных пользователей.
А значит, нужна и база данных, в которой вся эта информация будет храниться.
Чтобы сделать приятно пользователю, можно предусмотреть возможность добавлять таймеры в тесты, что сделает прохождение еще более интересным. В качестве последнего штриха стоит предоставить возможность делиться тестами и результатами для пользователей.
Десктопные приложения
Наверное, многие читатели помнят Winamp. А теперь можно создать собственный плеер, который будет ничуть не хуже Winamp.
Вот еще парочка примеров:
Для того, чтобы сделать приложение привлекательным для пользователей, ему нужен симпатичный и удобный интерфейс. Плеер должен отображать данные воспроизводимого файла, включая его название, продолжительность трека и время проигранной части файла в минутах и секундах.
В Python есть библиотеки, которые позволяют работать с мультимедийными файлами. Они также могут обрабатывать не только MP3, но и другие файлы. Эти библиотеки — pygame, pymedia и simpleaudio.
Для того, чтобы сделать приятно пользователю, стоит добавить плейлисты. Для хранения информации понадобится база данных. Модуль sqlite3 отлично подходит для базы данных SQLite. Ее основа — файлы, и в настройке она проще, чем многие другие SQL базы данных.
А еще можно добавить функцию повторения трека и возможность перемешивания треков в плейлистах.
Почему бы и не создать будильник? Свой, собственный, почти ламповый.
Вот примеры проектов:
Главная задача такого приложения — запустить определенный звуковой сигнал или проиграть трек в определенное время. Таким образом, основные компоненты приложения — информация о времени и звуковой сигнал воспроизведения. Приложение должно чекать установленное время и активировать сигнал, когда наступает срок. Для воспроизведения звука можно использовать библиотеку pygame.
У пользователей должна быть возможность редактировать, и удалять напоминания. А приложение должно отображать их все, как активные, так и нет. Для хранения информации потребуется база данных.
Чтобы сделать приятно пользователю, можно разрешить устанавливать повторяющиеся напоминания, например, время пробуждения для рабочих дней и для выходных. А еще можно добавить возможность откладывания сигнала.
О том, что это такое, знает любой пользователь ПК. Что насчет создания собственного менеджера? С его помощью пользователи получают доступ к управлению файлами и каталогами. Также при помощи файлового менеджера пользователи могут копировать, перемещать и переименовывать файлы и каталоги.
Вот примеры файловых менеджеров:
Главная задача файлового менеджера — предоставить интерфейс для управления файлами. Он должен быть простым и удобным в использовании. Для этого можно воспользоваться PySimpleGUI. Кроме того, библиотеки sys, os и shutil будут весьма полезны для этого проекта. В них присутствуют функции для выполнения действий с файлами в фоновом режиме — то есть, когда пользователь занят другими делами. В приложении файлового менеджера можно установить отображение файлов в виде сетки или списка.
Чтобы сделать приятно пользователю, стоит добавить функцию поиска — пользователи смогут экономить время, а не тратить его на ручной поиск файлов и каталогов. Плюс ко всему, полезной может оказаться функция сортировки файлов — по времени создания, названию или размеру.
Если не учитывать расходы, деньги улетают очень быстро. Трекер дает возможность следить за своими расходами, а также отслеживать их динамику. При помощи такой программы пользователи могут устанавливать свой бюджет и отслеживать расходы для того, чтобы принимать взвешенные финансовые решения.
Для предоставления данных о расходах нужно провести определенный статистический анализ. У приложения, кроме чисто аналитических функций, должен быть хороший интерфейс. С этим поможет PySimpleGUI. Ну а библиотеки PyData, включая Pandas и Matplotlib, помогут с техническими аспектами. В первом случае помощь оказывается с анализом данных, во втором — с построением графиков.
Информацию пользователей можно хранить при помощи SQLite и Python-модуль Sqlite3.
Чтобы сделать приятное пользователю, желательно добавить функцию напоминания внесения расходов. В противном случае человек забывает об этом, а восстановить список трат по памяти — очень сложно.
Приложения для командной строки
Контактов у практически любого современного человека очень много. Для того, чтобы их не терять, помогает адресная книга. Обычно в ней хранится имя, адрес, номер телефона и адрес электронной почты. Можно также создать и софт, который люди будут использовать для хранения и поиска контактных данных. Он всегда будет доступен в командной строке.
Подобных приложений много, но большинство из них имеют графический интерфейс.
Поскольку приложение — консольное, важно настроить команды, которые пользователи будут использовать для ввода контактных данных. Для этого стоит задействовать фреймворки Argparse или Click. С их помощью можно абстрагировать сложные вещи, так что для разработчика достаточно сосредоточиться на коде, который выполняется при вводе команд.
И вот как раз над командами стоит поразмыслить — ведь нужны команды для удаления контактов, обновления книги, вывода всех сохраненных контактов. Требуется еще и изменять контакты в случае необходимости, а также сортировать их.
Для хранения информации, как и в предыдущих случаях, подходит база данных SQLite.
Чтобы сделать приятно пользователю, стоит предусмотреть создание резервной копии базы данных, желательно — в облаке. Также стоит предусмотреть идентификацию пользователей, чтобы доступ к контактам не могли получить посторонние.
Проверка доступности сайта
В некоторых случаях сайты, которые нам нужны или принадлежат, могут быть недоступны. Для проверки доступности существуют приложения, которые пингуют ресурсы и рапортуют о недоступности.
Для подключения к ресурсу нужно определить протокол — TCP или ICMP. Для проверки требуется модуль Socket. Благодаря фреймворку, будь то Docopt, Click или Argparse, можно добавлять команды, чтобы пользователь мог взаимодействовать с приложением. У него должна быть возможность запускать приложение, останавливать его и определять интервалы проверки.
Что использовать для хранения данных? Это мы уже знаем — SQLite.
Чтобы сделать приятно пользователю, можно добавить функцию уведомления, например, звуковой сигнал. Уведомление предупредит пользователя об изменении статуса сайта.
Bulk File Rename Tool
В некоторых случаях пользователю нужно дать имена всем файлам в каталоге в соответствии с определенным шаблоном. Например, имена File0001.jpg, File0002.jpg. Ладно, если файлов 3-4, тогда можно сделать все вручную. Но если их тысячи? Тогда приходит на помощь Bulk File Rename Tool.
У приложения должна быть возможность управления файлами, для чего понадобятся библиотеки os, sys и shutil. Пользователи смогут задавать шаблон, под который файлы можно будет переименовывать, с чем поможет модуль regex.
Должна быть и возможность выбора каталога, в котором находятся файлы для переименования.
Для того, чтобы сделать приятно пользователю, стоит реализовать возможность переименования определенного количества файлов. Для этого понадобится сортировка файлов по алфавиту, времени создания файла или его размеру, в зависимости от требований пользователя.
Генератор дерева каталогов
Если каталогов много, иногда возникает необходимость установления связи между ними. С этой задачей справляется генератор древа.
Для этого приложения понадобится библиотека os, она сможет демонстрировать связь между отдельными каталогами. Для создания команд потребуются библиотеки Docopt или Argparse для создания команд. Ну а для придания приложению более удобного вида стоит применить Colored.
Для того, чтобы сделать приятное пользователю, стоит добавить генерацию изображений из древа. Для этого можно использовать библиотеку Pillow.
3 самых важных сферы применения Python: возможности языка
Существует множество областей применения Python, но в некоторых он особенно хорош. Разбираемся, что же можно делать на этом ЯП.
Если вы собираетесь изучать Python или совсем недавно начали его учить, вы точно задумывались, что же можно на нем сделать. Вопрос не простой, так как этот язык используется во многих сферах.
Но можно выделить 3 самых популярных направления применения Python:
Каждое из них заслуживает отдельного рассмотрения.
Веб-разработка
Относительно недавно в веб-разработке стали очень популярны Python-фреймворки, такие как Django и Flask. Они облегчают процесс написания на языке Python кода серверной части приложений. Это тот код, который запускается на сервере, а не на устройствах и браузерах пользователей (frontend-код). Если вы не знакомы с отличиями backend- и frontend-разработки, вам будет интересна заметка в конце статьи.
Зачем нужен веб-фреймворк?
Фреймворки позволяют легко и быстро создать базовую логику бэкенда. Она включает в себя сопоставление разных URL-адресов с частями Python-кода, работу с базами данных, создание HTML-представлений для отображения на устройствах пользователя.
Какой Python-фреймворк выбрать?
Django и Flask – два самых популярных веб-фреймворка, созданных для языка Python. Новичку следует выбрать один из них.
В чем разница между Django и Flask?
Другими словами, Flask – это, возможно, лучший выбор для начинающего разработчика, так как он содержит меньше компонентов. Кроме того, его стоит выбрать, если необходима тонкая настройка проекта.
Flask из-за своей гибкости лучше подходит для создания REST API.
С другой стороны, если стоит задача сделать что-то просто и быстро, вероятно, стоит выбрать Django.
Data Science: машинное обучение, анализ данных и визуализация
Прежде всего, следует разобраться, что такое машинное обучение.
Предположим, что вы хотите разработать программу, которая будет автоматически определять, что изображено на картинке.
Например, предлагая ей это изображение, вы хотите, чтобы программа опознала собаку.
А здесь она должна увидеть стол.
Возможно, вы думаете, что для решения этой задачи можно просто написать код анализа изображения. Например, если на картинке много светло-коричневых пикселей, делаем вывод, что это собака.
Или вы можете научиться определять на изображении края и границы. Тогда картинка с большим количеством прямых границ, вероятно, окажется столом.
Однако это довольно сложный и непродуманный подход. Что делать, если на фотографии изображена белая собака без коричневых пятен? Или если на картинке круглый стол?
Здесь вступает в игру машинное обучение. Обычно оно реализует некоторый алгоритм, который позволяет автоматически обнаруживать знакомый шаблон среди входных данных.
Вы можете предложить алгоритму машинного обучения, скажем, 1000 изображений собаки и 1000 снимков столов. Он выучит разницу между этими объектами. Затем, когда вы дадите ему новую картинку со столом или собакой, он сможет определить, что именно на ней изображено.
Это очень похоже на то, как учатся маленькие дети. Каким именно образом они узнают, что одна вещь похожа на стол, а другая – на собаку? Из большого количества примеров.
Вы ведь не даете ребенку четкую инструкцию: «Если нечто пушистое и светло-каштановое, значит, это собака». Напротив, вы говорите: «Это собака. Это тоже собака. И это. А это стол. И это тоже стол».
Алгоритмы машинного обучения в основном работают сходным образом.
Эта технология может применяться:
Среди самых популярных алгоритмов машинного обучения, о которых вы, вероятно, слышали:
Любой из вышеперечисленных алгоритмов может быть использован для решения задачи с собаками и столами на изображениях.
Способы применения Python для машинного обучения
Существуют разные библиотеки и фреймворки для машинного обучения на Python. Две самые популярные – это scikit-learn и TensorFlow.
Новичкам в машинном обучении лучше начать со scikit-learn. Более опытным разработчикам, которые столкнулись с проблемами эффективности, стоит присмотреться к TensorFlow.
Как изучать машинное обучение?
Для ознакомления с основами предмета прекрасно подойдут курсы Стэнфорда или Калтеха (Калифорнийский технический институт). Следует отметить, что для понимания материала требуются базовые знания в области математического анализа и линейной алгебры.
Затем можно переходить к практике на платформе Kaggle. Это сайт, на котором исследователи в области data science создают различные алгоритмы машинного обучения для решения реальных проблем. Победители получают солидные денежные призы. У них также есть отличные учебники для начинающих.
Анализ и визуализация данных
Чтобы понять, о чем идет речь, следует обратиться к простому примеру.
Предположим, вы работаете аналитиком данных в компании, которая продает товары через Интернет. Вы можете получить такую гистограмму:
Из этого графика можно понять, что в это воскресенье мужчины купили более 400 единиц продукта, а женщины – около 350. Ваша задача, как аналитика, придумать несколько возможных объяснений такой разницы.
Один из очевидных вариантов заключается в том, что этот продукт больше популярен у мужчин, чем у женщин. Другое объяснение может быть связано со слишком маленьким размером выборки, который привел к недостоверным результатам. Третий вариант – мужчины по какой-либо причине склонны покупать продукт по воскресеньям.
Чтобы разобраться, в чем дело, вы можете просмотреть данные за всю неделю и составить новый график.
Из схемы видно, что различие довольно устойчиво и проявляется не только по воскресеньям.
Можно сделать вывод, что наиболее убедительным объяснением является принципиально большая заинтересованность мужчин в этом продукте.
С другой стороны, график за неделю может выглядеть вот так.
Как здесь объяснить большую разницу в продажах в воскресенье?
Вы можете предположить, что мужчины в конце недели почему-то склонны покупать больше. Или это может оказаться простым совпадением.
Это упрощенный пример того, как выглядит реальный анализ данных.
Настоящие аналитики, например, в Google или Microsoft, делают то же самое, только их работа более сложная и комплексная.
Они используют язык запросов SQL, чтобы извлекать данные из баз. Затем для анализа и визуализации применяются специальные инструменты, например, Mathplotlib (для Python) или D3.js (для JavaScript).
Способы применения Python для анализа и визуализации данных
Одна из самых популярных библиотек для визуализации – Mathplotlib.
Новичкам следует начинать обучение с нее по двум причинам:
Как изучать анализ данных на Python?
Сначала следует изучить основы. Вот хорошее видео, посвященное данной теме:
Закрепить знания поможет курс по визуализации данных на Pluralsight. Получить его бесплатно можно, подписавшись на 10-дневную пробную версию.
Чтобы разобраться в основах статистики, пройдите курсы на Coursera и Khan Academy.
Автоматизация процессов
Одна из самых популярных сфер применения Python – это написание небольших скриптов для автоматизации различных рабочих операций и процессов.
В качестве примера можно привести систему обработки электронной почты. Для сбора статистики и анализа данных требуется подсчитывать количество входящих писем, содержащих определенные ключевые слова. Это можно делать вручную, или же написать простой скрипт, который все посчитает сам.
Есть несколько причин применения Python для задач автоматизации:
Встроенные приложения
Python является самым популярным языком программирования для Raspberry Pi.
Python и игры
Несмотря на то, что существует библиотека PyGame, популярность применения Python для создания игр невелика. Для серьезных проектов он не подходит.
Чтобы создавать хорошие мультиплатформенные игры, стоит присмотреться к одному из самых популярных движков Unity, работающем с языком C#.
Десктопные приложения
Вы можете создать парочку, используя Tkinter, но это не самое популярное решение.
Для этой задачи лучше использовать такие языки, как Java, C# и C++.
С недавних пор некоторые компании начали использовать для создания настольных приложений JavaScript. Например, десктопное приложение Slack было создано с помощью JavaScript-фреймворка Electron.
Преимущество написания настольных приложений на JavaScript заключается в том, что можно повторно использовать код веб-версии.
Python 3 или Python 2
Python 3 – это более современный и популярный выбор.
Пояснение о backend- и frontend-коде
Предположим, вы хотите сделать нечто, напоминающее Инстаграм.
Вам необходимо создать frontend-код для каждого типа устройств, который должен поддерживаться. Для этого могут использоваться разные языки программирования, например:
На каждом типе устройства будет запускаться свой набор кода. Он определит формат приложения, его внешний вид и т.д.
Однако вам требуется хранить личные данные и фотографии. Вы хотите использовать для этого свой сервер, а не устройства пользователей, чтобы подписчики могли просматривать фотографии друг друга.
Для решения этой задачи потребуется backend-код (server-side). Он будет выполнять следующие операции: