что можно написать на python для практики
Топ-16 Python-приложений в реальном мире
Удовольствие от написания Python-кода заключается в возможности создавать короткие, лаконичные и читаемые классы, которые выражают большой объем логики в небольшом объеме кода, а не в сотнях строк, утомляющих читателя.
За последние несколько лет технологии вокруг нас поменялись почти во всех аспектах. Мы живем в мире, где во главе угла стоит программное обеспечение, а за почти любой службой стоит какая-нибудь строчка кода. Индустрия путешествий, банкинг, образование, исследования, военная сфера — лишь немногие из тех, кто полагается на ПО.
Любой софт написан на каком-то языке программирования. А число последних лишь растет.
Однако одним из самых популярных в мире на сегодня является Python. В этом материале рассмотрим примеры реальных приложений, работающих на этом языке.
Реальные приложения на Python
Python сильно поменялся с момента создания в 1991 году Гвино ван Россумом. Это динамический, интерпретируемый, высокоуровневый язык программирования, с помощью которого можно создать массу разнообразных приложений. У него плавная кривая обучения и понятный синтаксис.
С помощью Python делают веб-приложения, видеоигры, занимаются Data Science и машинным обучения, разрабатывают софт, работающий в реальном мире, а также встроенные приложения и многое другое.
1. Веб-разработка
Наверняка все разработчики знают, что такое веб-разработка. Это квинтэссенция применимости Python. Также этот язык выделяет широкое разнообразие фреймворков и систем управления контентом (CMS), которые упрощают жизнь разработчика. Среди самых популярных решений — Django, Flask, Pyramid и Bottle. Среди CMS выделяются Django CMS, Plone CMS и Wagtail.
Веб-разработка на Python дает такие преимущества, как повышенная безопасность, масштабируемость и удобство в процессе работы. Также язык из коробки поддерживает такие протоколы, как HTML, XML, email-протоколы, FTP. У Python одна из крупнейших коллекций библиотек, упрощающих и улучшающих жизнь разработчика.
Посмотреть список сайтов, которые использую python можно на https://trends.builtwith.com/framework/Python.
2. Разработка игр
По аналогии с веб-разработкой в Python есть масса инструментов и библиотек для разработки игр. Кстати, а вы знали, что на этом языке программирования была написала популярная некогда Battlefield 2?
Для разработки игр используются такие библиотеки, как PyGame, Pycap, Construct, Panda3D, PySoy и PyOpenGL.
Также с помощью Python были разработаны такие проекты, как Sims 4, World of Tanks, Civilization IV и EVE Online. Можно вспомнить еще Mount & Blade, Doki Doki Literature Club, Frets on Fire и Disney’s Toontown Online.
3. Искусственный интеллект и машинное обучение
По данным GitHub Python расположился на втором месте среди языков, используемых для машинного обучения.
Искусственный интеллект и машинное обучение — очень популярные темы сегодня. С помощью них мы сегодня принимаем очень много решений. Python отчасти повлиял на такой рост популярность отрасли.
Стабильность и безопасность языка сделали его идеальным для интенсивных вычислений, без которых AI и ML не обходятся. А широкая коллекция библиотек помогает при разработке моделей и алгоритмов. Вот самые популярные библиотеки:
4. Графический интерфейс для настольных приложений
Иногда можно обойтись и без полноценного интерфейса, но для большинства проектов сегодня важен GUI. И для них в Python тоже есть множество решений.
При этом доступный синтаксис и модульная структура позволяют создавать быстрые и отзывчивые интерфейсы, делая еще и сам процесс разработки приятным. Среди самых популярных библиотек и фреймоворков — PyQt, Tkinter, Python GTK+, wxWidgets и Kivy.
5. Обработка изображений
Благодаря росту популярности машинного обучения, глубокого обучения и нейронных сетей выросла и роль инструментов для (предварительной) обработки изображений. Python в полной мере удовлетворяет этот спрос.
Среди самых популярных инструментов в Python можно выделить OpenCV, Scikit-Image, Python Imaging Library (PIL). Среди известных приложений, использующих Python — GIMP, Corel PaintShop, Blender и Houdini.
6. Обработка текста
Обработка текста — чуть ли не самый распространенный сценарий использования Python. Она руку идет с NLP (обработкой естественного языка), но не будем погружаться в эту тему сейчас. Обработка текста позволяет обрабатывать большие объемы текста, предоставляя гибкость структуры. Можно запросто сортировать строки, извлекать определенный текст, форматировать абзацы и так далее.
7. Бизнес приложения
Бизнес приложения во многом отличаются от обычного потребительского ПО. Во-первых, они предлагают ограниченный набор функций вместо десяток или даже сотен возможностей. Во-вторых, у них есть конкретная целевая группа (чаще всего ею выступает определенная организация).
Python отлично подходит для разработки таких высоконагруженных приложений.
Еще одной важной составляющей любого приложения является безопасность. И хотя почти все программы создаются с прицелом на безопасность, возможности Python в этом плане очень важны для бизнес-решений. Также Python позволяет писать масштабируемый код.
8. Образовательные и тренировочные программы
Python — отличная точка входа для каждого, кто хочет познакомиться с миром современного программирования. Все благодаря максимально простому синтаксису языка, который очень напоминает английский. Также изучается Python быстрее других языков. Именно поэтому этот язык один из основных кандидатов на то, чтобы быть первым языком программирования.
Есть масса обучающих ресурсов для получения начальных знаний по Python, но среди самых популярных можно выделить Coursera, edX, Udemy, Python Institute и Harvard.
9. Аудио и видео приложения
Эффективность Python позволяет использовать его для аудио и видео приложений. Для этого есть масса инструментов и библиотек. Сигнальная обработка, управление аудио, распознавание звуков — все это доступно с помощью таких библиотек, как Pyo, pyAudioANalysis, Dejavu и других.
Для видео же есть Scikit-video, OpenCV и SciPy. С их помощью можно управлять видеороликами и готовить их к использованию в других приложениях. На Python написаны Spotify, Netflix и YouTube.
10. Парсинг
В интернете просто невероятные объемы информации. И с помощью веб-парсеров данные на сайтах можно собирать, сохраняя их в одном месте. После этого их могут использовать исследователи, аналитики или организации для самых разных задач.
На Python есть такие библиотеки, как PythonRequest, BeautifulSoup, MechanicalSoup, Selenium и другие. Парсеры используются для отслеживания цены, аналитики, анализа в социальных медиа, проектах машинного обучения и в любых других проектах, где есть большие объемы данных.
11. Data Science и визуализация данных
Данные играют ключевую роль в современном мире. Они помогают понимать людей, их вкусы, собирать и анализировать интересные наблюдения. Это все — важная часть Data Science. В этой области требуется определить проблему, собрать данные, обработать их, изучить, проанализировать и визуализировать.
В экосистеме Python есть такие решения, как TensorFlow, PyTorch, Pandas, Scikit-Learn, NumPy, SciPy и многие другие.
Визуализация важна, когда данные нужно преподнести команде или держателям акций. Для этого в Python есть Plotly, Matplotlib, Seaborn, Ggplot, Geoplotlib и другие.
12. Научные и математические приложения
Мы уже определили, что в Python есть библиотеки для научных и математических вычислений, включая AI, ML и Data Science. Но даже если не брать эти сферы, язык пригодится, например, для работы с высокоуровневыми математическими функциями.
Стоит отметить такие инструменты, как Pandas, IPython, SciPy, Numeric Python, Matplotlib и другие. С помощью Python созданы такие приложения, как FreeCAD и Abaqus.
13. Разработка программного обеспечения
Python подходит не только для веб-разработки, научной разработки, создания игр или встраиваемых систем. По большому счету, это универсальное решение для софта любого типа. Все это возможно благодаря тому, что Python обеспечивает высокую скорость исполнения, хорошую совместимость, отличную поддержку со стороны сообщества, а также огромное количество библиотек. С помощью Python были созданы Roundup, Buildbot, SCons, Mercurial, Orbiter и Allura.
Часто разработчики используют Python как вспомогательный язык для управления проектами, контроля сборок и тестирования.
14. Операционные системы
Операционные системы — мозг любого компьютера. На Python, например, работают ОС, построенные на базе Linux. Как минимум, отдельные части таких систем.
В качестве примеров можно вспомнить Ubiquity Installer от Ubuntu, Anaconda Installer от Red Hat Enterprise. Также язык использовался для создания Gentoo Linux и системы управления пакетами Portage в Google Chrome OS. Вообще комбинация Python и C дает огромные преимущества при проектировании и разработке операционных систем.
15. CAD-приложения
CAD (computer aided design) приложения преимущественно используются в автомобильной, аэрокосмической и архитектурной сферах. Они помогают инженерам и дизайнерам проектировать продукты с точностью до миллиметров.
В среде Python из таких приложений есть FreeCAD, Fandango, PythonCAD, Blender и Vintech RCAM. Они предоставляют такие функции, как макрозапись, верстаки, симуляция роботов, скетчинг, поддержка мультиформатного импорта/экспорта, модули технического чертежа и многое другое.
16. Встроенные приложения
Одна из самых впечатляющих возможностей Python — работа на встроенном железе. Это такие устройства, которые предназначены для выполнения ограниченного набора действий. Встроенный софт — это тот, который отвечает за работу таких устройств. Среди самых популярных приложений MicroPython, Zerynth, PyMite и EmbeddedPython.
В качестве примера встроенных устройств можно вспомнить цифровые камеры, смартфоны, Raspberry Pi, промышленные роботы и другие, которые могут работать с помощью Python. Не все знают, но Python может использоваться как слой абстракции там, где на системном уровне работают C или C++.
Другие приложение на Python
Вывод
Python — продвинутый и универсальный язык программирования, который быстро приобретает популярность среди разработчиков в разных отраслях. Его можно применить почти в любой сфере благодаря широкому набору библиотек.
Если вы только знакомитесь с программированием в целом, то этот материал должен был убедить вас выбрать в качестве первого языка Python. Благо, выучить его сегодня легко с помощью обилия книг, курсов, GitHub-репозиториев, популярных инструментов и библиотек.
25 полезных однострочников Python, которые вы должны знать
Это сделает Python великим
В тот день, когда я написал свою первую строчку кода на Python, я был очарован простотой, популярностью и крутостью его однострочников. В своем блоге я хочу представить несколько однострочников на Python.
1. Сменка двух переменных
2. Множественные присвоения переменных
Вы можете использовать запятые и переменные, чтобы назначать нескольким переменным значения за раз. Используя этот метод, вы даже можете назначить несколько типов данных var за раз. Вы можете использовать список для присвоения значений переменным. Ниже приведен пример присвоения нескольких значений разным переменным из списка.
3. Сумма четных чисел в списке
4. Удаление нескольких элементов из списка
5. Чтение файлов
Здесь мы используем понимание того, как устроен список. Сначала мы открываем текстовый файл и с помощью цикла for читаем строку за строкой. В итоге с помощью strip убираем все лишнее пространство. Но есть один более простой и короткий способ сделать то же самое, используя только функцию списка.
6. Запись данных в файл
7. Создание списков
Мы также можем создать список строк, используя тот же метод.
8. Mapping списков, или изменение типа данных в списке
9. Создание набора
Метод, который мы использовали для создания списков, также можно использовать для создания наборов. Давайте создадим набор с помощью метода, который возвращает квадратный корень всех четных чисел в диапазоне.
10. Fizz Buzz
Это тест, в котором нам нужно написать программу, что печатает числа от 1 до 100. Но для чисел, кратных трем, выведет «Fizz» вместо числа, а для кратных пяти выведет «Buzz». (если кратно и трем, и пяти, то выводится, соответственно, FizzBuzz).
Похоже, нам нужно использовать циклы и несколько операторов if-else. Если вы попытаетесь сделать это на любом другом языке, то вам, возможно, придется написать до 10 строк кода. Но используя python, мы сможем реализовать FizzBuzz всего одной строкой кода.
В приведенном выше коде мы используем понимание списка для запуска цикла от 1 до 20, а затем на каждой итерации цикла мы проверяем, делится ли число на 3 или 5. Если да, то мы заменяем число на Fizz или Buzz соответственно (при выполнении обоих условий заменим число на FizzBuzz).
11. Палиндром
12. Целые числа, разделенные пробелами, в списке
13. Лямбда-функция
Лямбда-функция может принимать любое количество аргументов, но может иметь только одно __выражение.
14. Проверить наличие числа в списке
15. Вывод паттернов
16. Нахождение факториала
17. Ряд Фибоначчи
18. Простое число
19. Нахождение максимального числа
В приведенном выше коде с использованием лямбда-функции мы проверяем условие сравнения и в соответствии с ним возвращаем максимальное число.
20. Линейная алгебра
Иногда нам нужно увеличить числа в списке в 2 или 5 раз. Код ниже покажет, как это сделать.
21. Транспонировать матрицу
Если вам нужно преобразовать все строки в столбцы и наоборот, в python вы можете транспонировать матрицу всего в одну строку кода, используя функцию zip.
22. Подсчет нахождений паттерна
Это важный и рабочий метод, когда нам нужно знать количество повторений паттерна в тексте. В python есть библиотека re, которая сделает эту работу за нас.
23. Замена текста другим текстом
24. Симуляция подбрасывания монеты
Это может быть не так важно, но может быть очень полезно, когда вам нужно сгенерировать случайный выбор из заданного набора вариантов.
25. Генерация групп
Я поделился всеми полезными и важными однострочниками, которые я знаю. Если вы знаете какие-то ещё, поделитесь в комментариях.
12 актуальных идей для портфолио Python: веб-сайты, аналитика данных, автоматизация и парсинг
Существует два способа получить достойную работу в сфере информационных технологий:
Проекты говорят сами за себя громче, чем любые престижные сертификаты, поэтому в руководстве мы обсудим идеи проектов на Python для вашего резюме. Каждая идея относится к отдельной области применения Python.
Но прежде всего, запомните одну важную цитату:
“Проект завершен, когда он на вас работает, а не вы работаете на него”. — Скотт Аллен
1. Виртуальный ассистент
Собственноручно написанный виртуальный ассистент только украсит ваше резюме. Такая программа покажет интервьюеру на собеседовании, что вы знаете, как правильно управлять ресурсами, создавая из них что-то полезное.
Для написания такого ассистента не нужен особо высокий уровень технической подготовки, ведь она создаётся с помощью различных готовых пакетов, например, Pyttsx3 для чтения текста, os для добавления возможностей вроде воспроизведения музыки или запуска приложения, Wikipedia для поиска ответов в Интернете и многое другое. Помните об одном: каждый пакет должен предоставлять вашему проекту определенную функцию.
Дополнительно вы можете сделать виртуального ассистента более продвинутым, добавив средства веб-скрейпинга и автоматизации: напишите скрипт-скрейпер результатов поиска Google.
У проекта виртуального ассистента нет конца, разве что этап успешной монетизации, ведь чем больше функций вы добавите в свой проект, тем более профессиональным и полезным он станет.
2. Веб-сайт
Создание собственного сайта-портфолио — всегда хорошая идея. В Python вам доступны два варианта практики веб-разработчика:
Например, вы можете создать сайт, принимающий список электронных писем с дальнейшей отправкой каждому из адресатов индивидуального письма одним щелчком мыши; или сайт, принимающий PDF-файл для преобразования в аудиофайл.
3. Автоматизация задач
Данный проект похож на первый (виртуальный ассистент): вы можете написать скрипт для автоматизации некоторых задач — будь то организация папок путем переименования, удаления и перемещения файлов, или скрипт, посещающий различные веб-сайты с маркетинговыми целями для ваших блогов и стартапа, или что-то другое, например, скрипт, отправляющий поздравления с днем рождения вашим друзьям и коллегам.
Вам доступно множество библиотек для облегчения работы над проектом автоматизатора задач, например, Beautiful Soup (веб-скрейпинг), Selenium (веб-автоматизация), win10toast (уведомления на рабочем столе), os (организация папок) и так далее.
4. Видеоигра
Нет ничего более приятного, чем играть в компьютерные игры. Создание игры требует времени и упорного труда, но если вам по силам полностью функциональная игра, то нет ничего лучше этого.
Собственноручно созданная игра говорит о разработчике только хорошее. Она показывает, насколько программист креативен и организован, она также показывает, что разработчик хорошо разбирается в концепциях программирования и ООП; более того, уже существует множество библиотек Python для создания игр.
5. Программа с компьютерным зрением
Компьютерное зрение — модная технология двадцать первого века. Многие компании внедряют те или иные приложения с компьютерным зрением в свой рабочий процесс; также на рынке можно встретить много успешных стартапов в области компьютерного зрения.
Создавая модель компьютерного зрения, вы показываете будущему работодателю, что легко адаптируетесь к новым технологиям и ситуациям.
Доступно множество вариантов создания проекта в области компьютерного зрения: вы можете написать систему распознавания лиц, систему обнаружения заболеваний по рентгеновским снимкам или что-то полезное для дорожного движения.
Python предлагает широкий спектр библиотек для выполнения задач компьютерного зрения, но из всех библиотек OpenCV — одна из лучших.
6. Графический интерфейс (GUI)
Разработка графического интерфейса пользователя очень полезна и станет отличным проектом для вашего резюме. Графический интерфейс — это то, что видит и с чем взаимодействует пользователь, когда открывает ваше приложение.
Вы можете обратиться к соседям и создать графический интерфейс пользователя для какой-либо региональной информации. Просто пройдитесь вокруг своего дома, найдите несколько местных магазинов и создайте для них программное обеспечение с графическим интерфейсом в соответствии с их требованиями. Помните, что хорошо выглядящий графический интерфейс повышает репутацию вашего продукта, а также может принести вам деньги.
Tkinter — самая известная библиотека Python для создания графических интерфейсов. Иногда она сложна для понимания — особенно для новичка в программировании. Так или иначе, на рынке представлено множество других замечательных библиотек, подходящих для создания удивительных графических интерфейсов.
7. Анализатор настроения
Настроение — это чувство или мысль. Анализ настроений — это изучение субъективной информации в выражениях пользователя, область обработки естественного языка, определяющая то, характеризуются ли данные как положительные, отрицательные или нейтральные. Для извлечения данных о настроении пользователя из текста пригодятся различные методы NLP (Natural Language Processing, Обработка Естественного Языка).
Было бы неплохо создать для портфолио проект на основе реальной жизни, например, программу, способную определить настроение клиента на основе его отзыва. Будь то рестораны, торговые центры или сайт электронной коммерции, такой программный продукт пригодится всем.
Например, вы сможете предсказать, когда компании стоит устроить распродажу или специальное предложение на те или иные товары. Вы можете помочь им развивать свой бизнес и, в конечном счете, свой собственный стартап. Если ничего другого не остаётся, то анализатор настроения — это по крайней мере хороший проект, который не стыдно добавить в свое резюме.
На Python написано множество библиотек для обработки естественного языка, но особенно популярными можно назвать пять из них: NLTK, TextBlob, spacy, Gensim и CoreNLP.
8. Веб-краулер
Веб-краулер или поисковой паук — это Интернет-бот, систематически просматривающий веб-страницы с целью извлечения данных.
Создайте веб-краулер, извлекающий данные из страниц различных торговых сайтов, сравнивает их и выдает самую низкую цену со ссылкой на товар; либо же создайте трекер, отслеживающий цены на товары и отправляющий электронное письмо тогда, когда цена снижается; либо создайте трекер распродаж, выдающий уведомление-оповещение для пользователя каждый раз, когда начинается распродажа определенного товара.
Комбинируя веб-поиск с небольшим количеством автоматизации, вы сможете создать несколько необычных продуктов: они точно повысят эффективность вашего резюме.
Лучшими и простыми библиотеками для веб-поиска считаются Beautiful Soup и requests.
9. Бот-трейдер
Это больше, чем просто проект. Он может стать для вас источником дохода. Вам нужно написать скрипт, который автоматически продает и покупает криптовалюты или акции в зависимости от их цены.
Новичкам подобный проект покажется сложным. Вкратце, вам нужно написать скрипт, который получает настоящую и прошлую стоимость акций. Следующий шаг — создание модели машинного обучения, предсказывающей будущую стоимость акций. После получения будущей стоимости необходимо сравнить предсказанную стоимость акций с реальной стоимостью, которая появится в ближайшем будущем. Проверьте разницу в стоимости, и если она не слишком велика, то верьте в себя и начинайте торговать.
Бот-трейдер, безусловно, займет много времени, но если вы справитесь с ним, то он сможет обеспечить вас достойной работой сам по себе.
10. Пакет Python
Пакет Python — это, по сути, каталог с различными файлами Python, выполняющий определенную задачу. Пакеты помогают всем разработчикам писать меньше кода, ведь теперь достаточно просто импортировать один пакет. Каждый пакет содержит определенные действия, которые он в состоянии выполнить на основе конкретных инструкций.
Самое лучшее — это создание собственных пакетов и обмен ими с другими разработчиками с помощью пакетного менеджера PyPI.
Создание пакета Python не требует глубоких познаний. Вы можете легко создать его, следуя туториалам на YouTube.
Некоторые идеи для вас:
11. Мобильное приложение
Одним из ограничений Python можно назвать невозможность создания мобильных приложений, однако это не на 100% правда. Для Python уже существует множество библиотек, вполне пригодных для создания мобильных приложений.
Kivy — одна из них: это кроссплатформенный фреймворк для создания мобильных приложений как на Android, так и на iOS.
12. Упрощение анализа данных
Если вы хоть немного знакомы с областью машинного обучения, то вы наверняка слышали об анализе данных.
Анализ данных — первый этап любого проекта с участием машинного обучения: если вы работали над каким-либо проектом, связанным с наукой о данных, то наверняка видели, что шаги, предпринимаемые при подготовке данных для машинного обучения, одинаковы практически для всех задач — будь то обработка недостающих значений, категориальных данных или разделение данных на обучающий и тестовый наборы.
Следовательно, существует набор общих шагов аналитики данных в каждой из задач машинного обучения.
Вы можете создать веб-сайт, принимающий набор данных и возвращающий очищенный набор данных, выполнив все этапы анализа. Все, что вам нужно на сайте, так это несколько ползунков, выпадающих элементов и полей ввода различных вариантов.
Для создания такого сайта вам пригодится streamlit: библиотека с открытым исходным кодом, специально разработанная для визуализации данных машинного обучения. С ее помощью создаются потрясающие приложения по работе с данными, а кода и усилий пишется и затрачивается меньше.