Топ-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 не обходятся. А широкая коллекция библиотек помогает при разработке моделей и алгоритмов. Вот самые популярные библиотеки:
- SciPy для научных и технических вычислений.
- Pandas для анализа данных и манипуляции ими.
- Keras для нейронных сетей.
- TensorFlow для машинного обучения, особенно для глубоких нейронных сетей.
- NumPy для сложных математических функций и вычислений.
- Scikit-Learn для работы с разными моделями машинного обучения.
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-репозиториев, популярных инструментов и библиотек.
Возможности языка python
Так как мне часто стали задавать вопросы о том, чем может быть полезен Python, я решил написать небольшую обзорную статью на эту тему.
Вот лишь некоторые вещи, которые умеет делать python:
- Работа с xml/html файлами
- Работа с http запросами
- GUI (графический интерфейс)
- Создание веб-сценариев
- Работа с FTP
- Работа с изображениями, аудио и видео файлами
- Робототехника
- Программирование математических и научных вычислений
И многое, многое другое.
Таким образом, python подходит для решения львиной доли повседневных задач, будь то резервное копирование, чтение электронной почты, либо же какая-нибудь игрушка. Язык программирования Python практически ничем не ограничен, поэтому также может использоваться в крупных проектах. К примеру, python интенсивно применяется IT-гигантами, такими как, например, Google и Yandex. К тому же простота и универсальность python делают его одним из лучших языков программирования.
Для вставки кода на Python в комментарий заключайте его в теги
5 классных вещей, которые вы можете освоить с Python
Python — универсальный язык программирования. По данным на январь 2023 года, он стал самым популярным согласно рейтингам TIOBE и PYPL.
Что можно написать на Python? Всё, что угодно. В этой статье мы расскажем о том, какие интересные программы можно создавать на Питоне, а также поделимся лайфхаками для работы с этим языком в Терминале.
Что пишут на Python
Python относительно легок в изучении благодаря простому синтаксису и большому числу инструментов и готовых решений: они не требуют дополнительных настроек и установки.
Интересные библиотеки — это “визитная карточка” языка Python. В нем есть функционал для любых задач: распознавание речи, обработка изображений, математические расчеты, поддержка популярных фреймворков — всё необходимое для того, чтобы можно было свободно программировать на Python.
Практическое применение фреймворков с поддержкой Python может быть следующим:
- NumPy — работа с многомерными массивами и математическими функциями.
- Django и Flask — разработка веб-приложений.
- SQLAlchemy — работа с базами данных по технологии ORM.
- Cocos2d — создание браузерных и мобильных игр.
- Tornado — разработка высокопроизводительных приложений, которые предназначены для работы с большим количеством пользователей.
- Bubot — для домашней автоматизации и программирования робототехники.
О том, для каких задач подходит Python, расскажем ниже.
Какие задачи можно решать, используя Python
Веб-разработка
Python поддерживает платформы для веб-разработки: например React, где используется связка Django (backend) + JavaScript (frontend). Этот же технологический стэк используется в DropBox.
Кроме этого, Python позволяет настроить доступ к файловой системе Linux со смартфона. Ниже покажем пример такой программы на Python. Выполните следующие действия:
- Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
- Запустите файловый сервер с помощью команды:
python3 -m http.server После этого файловая система станет доступна с любого устройства локальной сети. - Проверьте локальный IP:
ip addr | grep inet В третьей строке вывода вы увидите нужный IP-адрес. - Откройте браузер на смартфоне. В адресной строке введите следующее:
123.123.123.123:8000
Вместо 123.123.123.123 укажите локальный IP-адрес из предыдущего шага.
Автоматизация
Python позволяет упростить выполнение ряда задач. Например:
- установить напоминание,
- настроить Cron-задание,
- загрузить видео на видеохостинг и другие.
Чтобы автоматизировать эти действия, можно написать скрипт на Python. После этого ваше участие в качестве IT-специалиста не потребуется: после отработки кода все произойдет само собой.
Например, так можно конвертировать файл из формата CSV в JSON:
- Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
- Выполните команду:
python -c "import csv,json;print(json.dumps(list(csv.reader(open(“file.csv”)))))"
Вместо file.csv укажите имя вашего файла.
Создание игр
Python включает в себя библиотеки для разработки компьютерных и мобильных игр. Наиболее популярная из них — Kivy. Она позволяет создавать кроссплатформенные игры, которые поддерживаются популярными операционными системами: Windows, Linux, Mac, Android и iOS.
Кроме этого, вы можете запускать игры в Терминале Linux (например, Виселица). Для этого:
-
Сохраните этот код в файл с расширением .py:
from random import shuffle
# Кол-во попыток.
turns = 10
print("Привет, Давай сыграем в виселицу! У тебя есть turns попыток!")
# Список слов, которые участвуют в игре.
wordList = ["geekflare", "awesome", "python", "magic"]
# Перемешиваем список.
shuffle(wordList)
# Берем последнее слово из списка.
word = wordList.pop()
guesses = " "
# Цикл, который будет работать, пока не останется попыток или не отгаданных букв.
while turns > 0:
wrong = 0
for char in word:
if char in guesses:
print(char, end= " ")
else:
print("_", end=" ")
wrong += 1
print("\n")
if wrong == 0:
print("Ты выиграл! :)")
break
print()
guess = ""
if len(guess) < 1:
guess = input("Впиши букву и нажми enter: ")[0]
if guess in guesses:
print("Эта буква уже была!")
guesses += guess
if guess not in word:
turns -= 1
Веб-парсинг
Веб-парсинг (Web Scraping) — это сбор информации в интернете из открытых источников. Парсинг относится к автоматизированным способам получения данных и выполняется по заданным условиям. Он позволяет собирать информацию из поисковой выдачи, а также открытые данные с сайтов и социальных сетей.
Python позволяет анализировать и использовать неструктурированные данные из Сети. Для этого можно использовать специальные Python-библиотеки: Beautiful Soup и Scrapy.
В качестве примера покажем, как узнать значение валюты относительно доллара США в системе Linux. Для этого:
- Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
- Установите библиотеки для парсинга и запросов:
pip install beautifulsoup4 requests - Создайте файл с названием currency_scrap.py и добавьте в него следующий код:
import requests
from bs4 import BeautifulSoup
URL = "https://www.x-rates.com/table/?from=USD&amount=1"
r = requests. get (URL)
soup = BeautifulSoup (r.content, "html.parser" )
ratelist = soup. findAll ( "table" , < "class" : "ratesTable" >)[ 0 ]. findAll ( "tbody" )
for tableVal in ratelist :
trList = tableVal. findAll ( "tr" )
Data Science и машинное обучение
Python помогает анализировать и манипулировать данными, а также подходит для работы со сложными алгоритмами. Для работы с информацией существует несколько библиотек. Самые популярные из них:
Кроме этого, существуют фреймворки с поддержкой Python для глубокого машинного обучения, например:
Варианты, которые мы описали в статье — только малая часть функционала Python. Вы можете воплотить практически любые идеи для программ на Python — этот язык функционален и одновременно компактен.
Как запустить Python приложение на хостинге SpaceWeb
На данный момент на наших серверах виртуального хостинга установлено 4 версии Python. Это Python 2.7, 3.3, 3.4, 3.8. Точные версии можно узнать командами:
$ python2.7 -V
Python 2.7.7
$ python3.3 -V
Python 3.3.5
$ python3.4 -V
Python 3.4.1
$ python3.8 -V
Python 3.8.5*
Запуск скрипта Python через CGI
CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешей программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитаю названия «скрипт»(сценарий) или «CGI-программа».
Для запуска скриптов python через CGI необходимо выполнить следующие действия:
- Добавить в файл .htaccess директиву:
AddHandler cgi-script .py - Указать первой строкой в скрипте путь к используемому интерпретатору. Так называемый shebang.
#!/usr/bin/python2.7
для использования python 2.7.5 или другую версию. - Указать расширение для файла *.py и выставить на файл права доступа 755.
Запуск скрипта Python через MOD_WSGI
WSGI (англ. Web Server Gateway Interface) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером, например, Apache.
Стандарт интерфейса (на английском): http://www.python.org/dev/peps/pep-0333/
По стандарту, WSGI-приложение должно удовлетворять следующим требованиям:
- должно быть вызываемым (callable) объектом (обычно это функция или метод);
- принимать два параметра:
словарь переменных окружения (environ);
обработчик запроса (start_response); - вызывать обработчик запроса с кодом HTTP-ответа и HTTP-заголовками;
- возвращать итерируемый объект с телом ответа;
Пример простого wsgi-приложения:
def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Если приложение будет использовать подключение к базе MySQL, то необходимо для неё сделать удаленный доступ для IP-адреса 127.0.0.1
Пять идей простых проектов на Python для детей
Самое главное в обучении детей программированию — закреплять новые знания на практике. Когда ребенок учится программировать на Python, он довольно быстро сможет пробовать свои силы не только в упражнениях, но и в создании настоящих приложений и небольших игрушек. Мы собрали пять таких минипроектов, которые помогут начинающим разработчикам отточить навыки и улучшить владение Python.
1. Генератор случайных чисел
Эту небольшую программу можно использовать как симулятор игральной кости с любым количеством граней. Любителям настольных игр может понравиться такая высокотехнологичная замена обычного кубика, который к тому же никогда не заденет фишки на столе. В любом случае подобные модули используются в самых разных приложениях, так что умение создать генератор случайных чисел пригодится любому разработчику.
С функциональной точки зрения программа должна уметь брать число в заданном диапазоне и выводить его на экран. После получения результата пользователь также должен иметь возможность перебросить кубик — получить новый результат.
Чтобы написать такой генератор, достаточно знать самые основы программирования: работа с целыми числами, функции случайного выбора и вывода результата. Подобное приложение — оптимальный вариант для ребенка, который учит Python. Он объединяет в себе понятное предназначение и несложный код.
2. Отгадай число
Эта мини-игра продолжает идею предыдущего, добавляя один важный момент — пользователь должен вводить числа. А программе нужно проверить, совпадает ли это число с выпавшим на генераторе случайных чисел, и выдавать соответствующий ответ. В качестве дополнительной возможности можно также предусмотреть подсказки игроку — «правильное число больше/меньше».
Чтобы создать такое приложение, ребенку нужно знать темы из предыдущего пункта, а еще уметь работать с переменными, циклами и условными операторами If/Else. В целом такая программа тоже прекрасно подходит для первых шагов в программировании на Python. К ней можно приступать и без «разминки на кошках».
3. Генератор текстов
Следующая программа в нашем списке может стать развлечением для компании друзей. Программирование для детей — это возможность блеснуть талантами перед сверстниками, и такое приложение послужит именно этой цели.
Принцип очень прост: сначала нужно подготовить шаблон для текста, а затем предложить программе слова, которые она проставит в пробелы. При этом приложение должно такие вопросы, чтобы пользователи гарантированно дали данные в нужной форме. Например, шаблон следующий: «______ пришел в гости и принес в подарок ______. Хозяева посмотрели на него и сказали: "__________"».
Пример запросов на ввод данных в этом случае:
- «Кто пришел в гости?» — Саша.
- «Что он принес в подарок?» — Книгу.
- «Что ему ответили хозяева?» — Большое спасибо.
Результат: «Саша пришел в гости и принес в подарок книгу. Хозяева сказали ему: "Большое спасибо"».
Такое приложение можно делать сколь угодно сложным, добавлять новые шаги и главы, чтобы наполнять историю все новыми подробностями и внезапными поворотами хитрого сюжета. А в процессе ребенок получит полное представление о важных механиках программирования на Python включая работу с разными типами переменных и объединение нескольких строк данных в одну последовательность (конкатенация).
4. Текстовый квест
Если ребенок мечтает разрабатывать собственные игры, такая программа обеспечит ему первый опыт. Он сможет придумывать собственные приключения с разветвленным сюжетом, отправлять персонажей в путешествия по фэнтезийным мирам, придумывать приключения самостоятельно или вместе с друзьями.
Такая игра описывает пользователю окружающие условия и спрашивает, какие действия он планирует предпринять:
- Вы оказались в комнате с тремя дверьми. За первый слышится уличный шум, за второй кто-то рычит, за третьей тишина. Куда идем?
- Дверь №1.
- Вы вышли на улицу. Через дорогу вы заметили странно одетого человека… и т.д. — фактически до бесконечности.
Такой проект подойдет как самым начинающим разработчикам, так и детям, которые уже хорошо познакомились с основами программирования на Python. Они смогут использовать свой опыт из заданий, про которые мы говорили выше. Например, урон от оружия в битве может определять генератор случайных чисел, а диалоги можно менять, подставляя слова в соответствии с сюжетом.
Создание такой игры может стать многомесячным проектом, ведь историю можно продолжать дальше и дальше, меняя старые главы и усложняя игровую механику. Этот опыт будет полезным не только будущим гейм-дизайнерам, но и писателям, сценаристам и всем, кто зарабатывает на жизнь историями.
5. «Угадай слово» («Виселица»)
Эту игру знают все — есть некое слово, про которое известно только количество букв, и вам нужно его угадать, предлагая по одной букве. После некоторого количества ошибок игра завершается.
Такая программа представляет собой самый сложный проект в нашем списке для начинающих разработчиков на Python, так что за эту игру стоит браться, когда с основами программирования уже разобрались. Приложение должно брать слово из некоего списка (то есть работать с базой данных), проверять полученные от пользователя данные, раскрывать угаданные буквы, считать количество ошибок. Можно даже добавить картинку «висельника», как в оригинальной игре, которой многие из нас развлекались в школе — с каждой неудачной догадкой у фигурки должны появляться новые элементы.
Эти пять небольших проектов помогут ребенку усвоить основы программирования на Python и дадут практическое представление о том, чем занимаются разработчики приложений. С такой базой ему будет проще перейти от простых вопросов к более сложным, чтобы разобраться с темами, которые ему наиболее интересны.