Описание тега python
Python - этоинтерпретируемый,интерактивный, объектно-ориентированный (с использованием классов), динамический и строго типизированный язык программирования, который используется для широкого круга приложений. Он включает модули, исключения, динамическую типизацию, динамические типы данных очень высокого уровня и классы. Python сочетает замечательную мощь с очень понятным синтаксисом. Он имеет интерфейсы ко многим системным вызовам и библиотекам, а также к различным оконным системам и расширяется на C или C++. Его также можно использовать в качестве языка расширения для приложений, которым требуется программируемый интерфейс. Наконец, Python переносим: он работает во многих вариантах Unix, на Mac, в Windows 2000 и новее.
Язык поставляется с большой стандартной библиотекой, которая охватывает такие области, как обработка строк (регулярные выражения, Unicode, вычисление различий между файлами), Интернет-протоколы (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, программирование CGI), разработка программного обеспечения. (модульное тестирование, ведение журнала, профилирование, анализ кода Python) и интерфейсы операционной системы (системные вызовы, файловые системы, сокеты TCP/IP). Посмотрите содержание Стандартной библиотеки Python, чтобы получить представление о том, что доступно. Также доступно большое количество сторонних расширений. Проконсультируйтесь с указателем пакетов Python, чтобы найти интересующие вас пакеты.
Python позволяет программистам выражать концепции в меньшем количестве строк кода, чем это было бы возможно на многих других языках, таких как C, и этот язык имеет конструкции, предназначенные для использования для создания понятных программ в различных областях.
Пример:
Программа Python
print("hello stackru")
против
Программа C
#include <stdio.h>
int main(void) {
printf("hello stackru");
return 0;
}
Первоначально Python был создан Гвидо ван Россумом и впервые выпущен в 1991 году. Гвидо Ван Россум выбрал Python в качестве рабочего названия для проекта, находясь в слегка непочтительном настроении (и большой поклонник Летающего цирка Монти Пайтона).
Python 2 (16 октября 2000 г. - 1 января 2020 г.) официально закрыт, а Python 3 (3 декабря 2008 г.) является единственной поддерживаемой, поддерживаемой и улучшенной основной версией по состоянию на 1 января 2020 г. У нас есть сообщество людей из обоих миров, и если у вас есть вопрос, относящийся к конкретной версии, при задании вопроса о Python рассмотрите возможность упоминания версии и реализации, которые вы используете (см. раздел " Рекомендации по тегам " ниже).
Python поддерживает несколько парадигм программирования, включая объектно-ориентированные, императивные и функциональные стили программирования. Он имеет полностью динамическую систему типов и автоматическое управление памятью, аналогично Scheme, Ruby, Perl и Tcl.
Как и другие динамические языки, Python часто используется как язык сценариев, но также используется в широком диапазоне контекстов, не связанных со сценариями. Используя сторонние инструменты, код Python можно упаковать в отдельные исполняемые программы. Интерпретаторы Python доступны для многих операционных систем.
CPython, эталонная реализация Python, является бесплатным программным обеспечением с открытым исходным кодом. У него есть модель разработки на основе сообщества, как и почти все его альтернативные реализации. Существует множество реализаций, более подходящих для конкретных сред или задач (см. Реализации Python в вики-странице Python).
Философия Python лаконично сформулирована в книге "Дзен Python", написанной Тимом Петерсом, которую можно прочитать, выполнив эту команду в интерактивном интерпретаторе Python:
>>> import this
В отличие от многих других языков, Python использует синтаксис на основе отступов (в котором символы табуляции и пробелы не взаимозаменяемы). Программистам, знакомым с фигурными скобками, может потребоваться некоторое привыкание.
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance
>>>
Чтобы облегчить переход, рекомендуется использовать правильно настроенный текстовый редактор или IDE. Python поставляется с базовой IDE под названием IDLE ( python-idle), чтобы вы могли начать работу. Другими популярными примерами являются благотворительная программа Vim, бесплатный GNU Emacs, Eclipse+PyDev или PyCharm. Взгляните на этот список сравнения IDE для многих других альтернатив.
Также существует руководство по стилю для Python под названием PEP 8, цель которого - сделать код Python более читаемым и последовательным. Это руководство соблюдается (должно) соблюдаться всем сообществом разработчиков Python.
Рекомендации по тегам:
Используйте тег python для всех вопросов, связанных с Python. Если вы считаете, что ваш вопрос включает проблемы, характерные для отдельных версий, используйте python-3.x или python-2.7 в дополнение к основному тегу python. Если вы считаете, что ваш вопрос может быть даже более конкретным, вы можете добавить тег для конкретной версии, например python-3.5 или python-3.6 и т. Д.
Также рассмотрите возможность включения тега для конкретной реализации ( jython, pypy и т. Д.), Если вы используете какой-либо другой, кроме cpython - предполагается использование cpython, если явно не указано иное.
Ссылки:
- Официальная документация для текущей версии стабильной: 2.7.x и 3.8.x.
- Примечания к выпуску текущих стабильных версий: 2.7.17 и 3.8.4.
- Python (язык программирования) (Википедия)
- Python для программистов
- Python- Краткое руководство
- Начало работы с Python
- Перенос кода Python 2 на Python 3
- 2to3 - Автоматическая трансляция кода Python 2 в 3
- Некоммерческая организация Python Software Foundation управляет CPython.
- Лицензионное соглашение PSF для Python 2.7.x и 3.8.x
- Удивительный-Python
- Полный стек Python
- Python Прочитать документацию
Установка внешних пакетов:
Большинство библиотек Python, используемых для простых и сложных сценариев, загружаются с помощью pip, установщика пакетов Python. Он позволяет устанавливать и управлять дополнительными пакетами, которые не являются частью стандартной библиотеки Python. Большинство дистрибутивов Python поставляются с предварительно установленным pip.
Общий синтаксис:
$ pip install SomePackage
[...]
Successfully installed SomePackage
easy_install простая установка
easy_install был выпущен в 2004 году как часть setuptools. В то время это было примечательно установкой пакетов из PyPI с использованием спецификаторов требований и автоматической установкой зависимостей. Простая установка устарела. Не используйте это. Вместо этого используйте pip.
Популярные библиотеки Python общего назначения:
Простая библиотека Python для выполнения HTTP-запросов. Запросы продаются как "Для людей". Библиотека предназначена для упрощения и универсализации многих методов Python для выполнения HTTP-запросов таким образом, чтобы они были удобочитаемыми и простыми в использовании. Такие функции, как сохранение активности и создание пулов соединений, обрабатываются автоматически, что обеспечивает максимальную простоту.
Подушка python-imaging-library
Pillow описывается как "дружественная ветвь" модуля Python PIL, не поддерживаемой, но полезной библиотеки изображений. Библиотека использует API-интерфейсы C, чтобы предоставить простой интерфейс Python для изменения и управления файлами изображений различными способами.
Scrapy - это быстрый высокоуровневый фреймворк для сканирования и сканирования веб-сайтов, используемый для сканирования веб-сайтов и извлечения структурированных данных с их страниц. Его можно использовать для самых разных целей, от интеллектуального анализа данных до мониторинга и автоматического тестирования.
Красивый суп beautifulsoup bs4
Beautiful Soup- это пакет Python для анализа документов HTML и XML. Он создает дерево синтаксического анализа для проанализированных страниц, которое можно использовать для извлечения данных из HTML, что полезно для парсинга веб-страниц. Он доступен для Python 2.7 и Python 3.
Инструментарий естественного языка или NLTK - это платформа для создания приложений Python для работы с данными на человеческом языке и обработки предложений. Он предоставляет простые в использовании интерфейсы для более чем 50 корпусных и лексических ресурсов, таких как WordNet, а также набор библиотек обработки текста для классификации, токенизации, выделения корней, тегов, синтаксического анализа и семантического анализа, а также предоставляет оболочки для промышленного НЛП. библиотеки.
Популярные веб-фреймворки на основе Python:
Если ваш вопрос имеет какое-либо отношение к какой-либо из этих платформ, убедитесь, что вы добавили соответствующий тег.
Веб-фреймворк для перфекционистов (с дедлайнами). Django упрощает создание лучших веб-приложений быстрее и с меньшим количеством кода. Django - это веб-фреймворк Python высокого уровня, который способствует быстрой разработке и чистому, прагматичному дизайну. Он позволяет быстро создавать высокопроизводительные элегантные веб-приложения. Django фокусируется на максимально возможной автоматизации и придерживается принципа DRY (Don't Repeat Yourself).
Flask - это легкая микросхема и сторонняя библиотека для Python, основанная на Werkzeug, Jinja 2 и благих намерениях. Он обеспечивает монолитную структуру и не навязывает зависимости, что обеспечивает более тонкий контроль и большую свободу для разработки.
Quart- это эволюция Flask API для работы с Asyncio и обеспечения ряда функций, которые отсутствуют или невозможны во Flask.
Tornado - это веб-фреймворк Python и асинхронная сетевая библиотека. Используя неблокирующий сетевой ввод-вывод, Tornado может масштабироваться до десятков тысяч открытых подключений, что делает его идеальным для длительного опроса, веб-сокетов и других приложений, которым требуется длительное соединение с каждым пользователем.
CherryPy - это питоническая объектно-ориентированная веб-инфраструктура, которая позволяет разработчикам создавать веб-приложения почти так же, как они создают любую другую объектно-ориентированную программу на Python. Это приводит к меньшему количеству исходного кода, который разрабатывается за меньшее время. CherryPy используется более 17 лет и используется в производстве на многих сайтах, от самых простых до самых требовательных.
Легкий веб-фреймворк, подчеркивающий гибкость и быстрое развитие. Он сочетает в себе лучшие идеи из миров Ruby, Python и Perl, обеспечивая структурированную, но чрезвычайно гибкую веб-среду Python. Это также один из первых проектов, в котором используется развивающийся стандарт WSGI, который обеспечивает широкое повторное использование и гибкость, но только при необходимости.
TurboGears - это масштабируемая веб-платформа, которая может перейти от настройки минимального режима к веб-приложению с полным стеком. Он был создан в 2005 году Кевином Дангуром, а текущую разработку TurboGears2 ( turbogears2) возглавляет Марк Рамм. Текущая стабильная версия TurboGears - TurboGears 2.4.1, выпущенная 3 сентября 2019 г.
web.py - это веб-фреймворк для Python, который настолько прост и эффективен. web.py находится в общественном достоянии: вы можете использовать его для любых целей без каких-либо ограничений. web.py позволяет писать веб-приложения на Python.
Создан на основе существующих библиотек Zope 3, но призван упростить процесс обучения и сделать разработку более гибкой. Grok делает это, делая упор на соглашение, а не на конфигурацию и DRY (Don't Repeat Yourself).
Бутылка - это быстрый, простой и легкий веб-фреймворк WSGI для Python. Он распространяется как единый файловый модуль и не имеет никаких зависимостей, кроме стандартной библиотеки Python.
web2py - это бесплатная полнофункциональная среда с открытым исходным кодом для быстрой разработки быстрых, масштабируемых, безопасных и переносимых веб-приложений на базе баз данных.
Falcon - это минимальный веб-фреймворк Python для создания микросервисов, серверных частей приложений и фреймворков более высокого уровня, который поддерживает архитектурный стиль REST. Есть как коммерческая, так и общественная версии.
Twisted - это сетевой движок с открытым исходным кодом, управляемый событиями. Это полезно для реализации как клиентов, так и серверов, а также масштабируется до крупных веб-сайтов и до встроенных устройств. Twisted упрощает реализацию индивидуальных сетевых приложений.
Популярные фреймворки Python с графическим интерфейсом на основе Python
Kivy- это ускоренная платформа OpenGL ES 2 для создания новых пользовательских интерфейсов. Он поддерживает несколько платформ, а именно Windows, MacOSX, Linux, Android iOS и Raspberry Pi. Он имеет открытый исходный код и включает в себя более 20 виджетов в своем наборе инструментов. Дополнительные материальные объекты доступны через KivyMD.
PyQT - одна из излюбленных кроссплатформенных привязок Python, реализующих библиотеку Qt для среды разработки приложений Qt (принадлежащей Nokia). В настоящее время PyQT доступен для Unix/Linux, Windows, Mac OSX и Sharp Zaurus. Он сочетает в себе лучшее из Python и Qt, и программист может решить, создавать ли программу путем кодирования или с помощью Qt Designer для создания визуальных диалогов.
Он доступен как под коммерческой, так и под лицензией GPL. Хотя некоторые функции могут быть недоступны в бесплатной версии, если ваше приложение имеет открытый исходный код, вы можете использовать его по бесплатной лицензии.
Последняя версия PyQt - v5.
Tkinter обычно поставляется в комплекте с Python с использованием Tk и является стандартной структурой графического интерфейса Python. Он популярен благодаря своей простоте и графическому пользовательскому интерфейсу. Он имеет открытый исходный код и доступен по лицензии Python. Одно из преимуществ выбора Tkinter заключается в том, что, поскольку он поставляется по умолчанию, существует множество ресурсов, как кодов, так и справочников. Кроме того, поскольку сообщество старое и активное, есть много пользователей, которые могут помочь вам в случае возникновения вопросов.
PyGUI - это кроссплатформенная среда графических приложений для Unix, Macintosh и Windows. По сравнению с некоторыми другими фреймворками GUI, PyGUI на сегодняшний день является самым простым и легким из всех, поскольку API полностью синхронизирован с Python. PyGUI вставляет очень мало кода между платформой GUI и вашим приложением Python, поэтому при отображении приложения обычно отображается естественный графический интерфейс платформы.
Популярные математические / научные вычислительные библиотеки на Python
NumPy - это фундаментальный пакет для научных вычислений с Python. Среди прочего он содержит:
- мощный объект N-мерного массива
- сложные (вещательные) функции
- инструменты для интеграции кода C/C++ и Fortran
- полезная линейная алгебра, преобразование Фурье и возможности случайных чисел
Эти функции также позволяют использовать NumPy в приложениях баз данных общего назначения.
SciPy - это библиотека с открытым исходным кодом для языка программирования Python, состоящая из математических алгоритмов и функций, часто используемых в науке и технике. SciPy включает в себя алгоритмы и инструменты для таких задач, как оптимизация, кластеризация, дискретное преобразование Фурье, линейная алгебра, обработка сигналов и обработка многомерных изображений. SciPy тесно связан с NumPy и зависит от многих функций NumPy, включая многомерный массив, который используется в качестве базовой структуры данных в SciPy.
matplotlib - это библиотека построения графиков для языка программирования Python и его расширения числовой математики NumPy. Он предоставляет объектно-ориентированный API для встраивания графиков в приложения с использованием универсальных инструментов графического интерфейса пользователя, таких как wxPython, Qt или GTK. Существует также процедурный интерфейс "pylab", основанный на конечном автомате (например, OpenGL), который очень похож на интерфейс MATLAB.
Pandas - это библиотека с открытым исходным кодом под лицензией BSD, предоставляющая высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для языка программирования Python. Pandas объединяет многие другие функции библиотек, а именно матричные операции NumPy и возможности построения графиков Matplotlib. 10 Minutes to Pandas - хорошее руководство для первого знакомства с Pandas.
Theano - это широко используемая библиотека на основе Python-C, подходящая для высокопроизводительных математических задач из-за оптимизации, которую она выполняет в интерфейсном коде Python, что делает его высоко оптимизированным с использованием его подпрограмм на основе C. Это очень популярная библиотека для исследователей машинного обучения. Он имеет оптимизированную автоматическую дифференциацию, упрощающую реализацию очень сложных функций и вычисление их градиентов без ошибок.
Blender - это бесплатный пакет 3 D-анимации с открытым исходным кодом. Он поддерживает весь трехмерный конвейер - моделирование, оснастку, анимацию, симуляцию, рендеринг, композицию и отслеживание движения, даже редактирование видео и создание игр.
scikit-learn - это бесплатная библиотека машинного обучения с открытым исходным кодом, написанная на Python. Он поддерживает обучение и тестирование множества различных моделей машинного обучения, а также некоторые базовые методы обработки данных.
TensorFlow - это программная библиотека с открытым исходным кодом, разработанная командой Google Brain. Это символьная математическая библиотека, используемая в основном для приложений машинного обучения, таких как нейронные сети.
Популярные решения для расширения C:
С расширением C вы можете ускорить свой код на Python. Если ваш вопрос имеет какое-либо отношение к любому из следующих решений, убедитесь, что вы добавили соответствующий тег.
ctypes
- это пакет Python, который обертывает библиотеки C.dll/.so на чистом Python.SWIG - это компилятор интерфейса, который соединяет программы, написанные на C и C++, с такими языками сценариев, как Python.
Cython - это оптимизирующий статический компилятор как для языка программирования Python, так и для расширенного языка программирования Cython (на основе Pyrex). Это делает написание расширений C для Python таким же простым, как и сам Python.
Сообщество
Чаты
Общайтесь на выделенном IRC-канале #python на Freenode обо всем, что связано с Python. Если интересно, посмотрите список Python IRC для конкретного альтернативного канала.
Обсудите Python с другими пользователями stackru в чате Python.
Другие сайты
- Индекс пакета Python - Индекс пакета Python (PyPI) - это репозиторий программного обеспечения для языка программирования Python.
- Список рассылки репетитора
- список рассылки python-help
- PyCon
- Python Weekly
- Еженедельник Pycoder's
- Группа Google Python
- Субреддит Python
- Learnpython Subreddit
- Hacker Rank - Решение проблем с Python
- Настоящий Python - учебники и информационный бюллетень по Python
- Курс Python- учебные пособия по Python
Бесплатные книги по программированию на Python
- Объектно-ориентированный дизайн на Python
- Руководство Wikibooks для непрограммистов по Python 2.6
- Руководство Wikibooks для непрограммистов по Python 3
- Официальное руководство по Python
- Развитие навыков в Python версии 2.6 (Стивен Ф. Лотт)
- Байт Python (Swaroop C H.)
- Решение проблем с помощью алгоритмов и структур данных с использованием python (Брэд Миллер и Дэвид Ранум)
- Погрузитесь в Python 3
- Изобретайте свои собственные компьютерные игры с помощью Python (Эл Свигарт)
- Создание игр с помощью Python и Pygame (Альберт Свигарт)
- Обработка естественного языка с помощью Python (Стивен Берд, Юэн Кляйн и Эдвард Лопер)
- Библиотека Python
- Python для развлечения (Крис Мейерс)
- Snake Wrangling For Kids (Джейсон Р. Бриггс)
- Think Python (файл PDF) (Аллен Дауни)
- Think Python 3 (Аллен Дауни)
- Перенос на Python 3 (Леннарт Регебро)
- Автоматизируйте скучную работу с помощью Python (Эл Свигарт)
- Книга Python® Notes для профессионалов (GoalKicker)
- Книга по практике Python (Ананд Читипоту)
Интерактивное обучение Python
- Codecademy - Изучите основы Python и динамического программирования.
- CodeSkulptor - интерактивная онлайн-среда разработки для программирования на Python 2
- CodeSkulptor 3 - интерактивная онлайн-среда разработки для программирования на Python 3
- Coursera - онлайн-курс для введения в интерактивное программирование на Python
- CheckiO - игровой мир, который можно исследовать, используя свои навыки программирования на Python
- Dataquest - Интерактивные курсы Python для науки о данных
- Repl.it - онлайн-интерпретатор для Python 2 и 3, который упрощает сохранение и совместное использование кода
- PyCharm Edu - настольное приложение, предлагающее интерактивное обучение Python
- Интерактивный Python - включает модифицированную интерактивную версию книги "Как думать как компьютерный ученый"
- Python Tutor - Визуализация и / или живое кодирование на Python
- Круги по информатике - изучите основы Python 3 в полуинтерактивном режиме.
Онлайн-курсы Python
- Интерактивное программирование с помощью Python - Введение в интерактивное программирование с помощью Python.
- Программирование для всех - Введение в программирование с использованием Python.
- Введение в информатику и программирование с использованием Python - новое и обновленное введение в информатику как инструмент для решения реальных аналитических задач с использованием Python 3.
- Введение в информатику - изучите основы информатики, создавая собственную поисковую систему и социальную сеть, изучая Python.
Видеоуроки Python
Python для ученых
Python Online IDE
- ideone - онлайн-среда IDE с поддержкой других популярных языков.
- repl - Среда мгновенного программирования для вашего любимого языка
- оболочка python - онлайн-консоль от PythonAnywhere
- http://pythonfiddle.com/ - Облачная среда разработки Python
- pyfiddle - онлайн-консоль Python 2.7/3.6
Качество кода
- Codacy - автоматическая проверка кода для более быстрой отправки лучшего кода.
- Codecov - панель мониторинга покрытия кода.
- CodeFactor - автоматическая проверка кода для Git.
- Пейзаж - размещенные непрерывные метрики кода Python.
Официальный логотип
https://www.python.org/static/community_logos/python-logo-master-v3-TM.png