Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.

Python- это интерпретируемый, интерактивный, объектно-ориентированный (с использованием classes), динамический и строго типизированныйязык программирования, который используется для широкого спектра приложений. Он включает модули, исключения, динамическую типизацию, динамические типы данных очень высокого уровня и классы. 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, Stack Overflow!")

Против

C программа

#include <stdio.h>
int main(void) {
    printf("Hello, Stack Overflow!");
    return 0;
}

Первоначально Python был создан Гвидо ван Россумоми впервые выпущен в 1991 году. Гвидо Ван Россум выбрал Python в качестве рабочего названия для проекта. , находясь в слегка непочтительном настроении (и большой поклонник Летающего цирка Монти Пайтона).

Python 2 (16 октября 2000 г. - 1 января 2020 г.) официально прекратил свое существование, а Python 3 (3 Декабрь 2008 г.) является единственной поддерживаемой, поддерживаемой и улучшенной основной версией по состоянию на 1 января 2020 г. У нас есть сообщество людей из обоих миров, и если у вас есть вопрос, относящийся к конкретной версии, пожалуйста, укажите версию и реализацию, которые вы используете, когда задаете вопрос о Python (см. раздел Рекомендации по тегам ниже).

Python поддерживает несколько парадигм программирования, включая объектно-ориентированные, императивные и функциональные стили программирования. Он имеет полностью динамическую систему типов и автоматическое управление памятью, аналогичное системам Scheme, Ruby, Perl и Tcl.

Как и другие динамические языки, Python часто используется как scripting, но также используется в широком диапазоне контекстов, не связанных с написанием сценариев. Используя сторонние инструменты, код 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, если явно не указано иное.


Ссылки:


Установка внешних пакетов:

  • Pippip

    Большинство библиотек Python, используемых для простых и сложных сценариев, загружаются с помощью pip, установщика пакетов Python. Он позволяет устанавливать и управлять дополнительными пакетами, которые не являются частью стандартной библиотеки Python. Большинство дистрибутивов Python поставляются с предустановленным pip . Общий синтаксис:

$ pip install SomePackage
[...]
Successfully installed SomePackage
  • easy_install easy-install

    easy_install был выпущен в 2004 году как часть setuptools. В то время это было примечательно для установки пакетов из PyPI с использованием спецификаторов требований и автоматической установки зависимостей. Простая установка устарела. Не используйте это. Вместо этого используйте pip.


Популярные библиотеки Python общего пользования:

  • Запросыrequests

    Простая библиотека Python для выполнения HTTP-запросов. Запросы продаются как «Для людей». Библиотека предназначена для упрощения и универсализации многих методов Python для выполнения HTTP-запросов таким образом, чтобы он был читабельным и простым в использовании. Такие функции, как поддержание активности и пул соединений, автоматически обрабатываются для обеспечения максимальной простоты.

  • Pillowpython-imaging-library

    Подушка описывается как «дружественная ветвь» модуля Python PIL, необслуживаемой, но полезной библиотеки изображений. Библиотека использует API-интерфейсы C для обеспечения простого интерфейса Python, позволяющего модифицировать и обрабатывать файлы изображений различными способами.

  • Scrapyscrapy

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

  • Красивый супbeautifulsoupbs4

    Beautiful Soup - это пакет Python для анализа документов HTML и XML. Он создает дерево синтаксического анализа для проанализированных страниц, которое можно использовать для извлечения данных из HTML, что полезно для очистки веб-страниц. Он доступен для Python 2.7 и Python 3.

  • nltknltk

    Natural Language Toolkit, или NLTK, представляет собой платформу для создания приложений Python для работы с данными на человеческом языке и обработки предложений. Он предоставляет простые в использовании интерфейсы для более чем 50 корпоративных и лексических ресурсов, таких как WordNet, наряду с набором библиотек обработки текста для классификации, токенизации, обработки по меткам, разметки, анализа и семантического мышления, а также предоставляет оболочки для промышленного NLP. библиотеки .


Популярные веб-фреймворкина основе Python:

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

  • Djangodjango

    Веб-фреймворк для перфекционистов (с дедлайнами). Django упрощает создание лучших веб-приложений быстрее и с меньшим количеством кода. Django - это веб-фреймворк Python высокого уровня, который способствует быстрой разработке и чистому, прагматичному дизайну. Он позволяет быстро создавать высокопроизводительные элегантные веб-приложения. Django фокусируется на максимально возможной автоматизации и придерживается принципа DRY (Don't Repeat Yourself).

  • Flaskflask

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

  • Квартаquart

    Quart представляет собой эволюцию API Flask для работы с Asyncio и для предоставления ряда функций, отсутствующих или невозможных в Flask.

  • Торнадоtornado

    Tornado - это веб-фреймворк Python и библиотека асинхронных сетей. Используя неблокирующий сетевой ввод / вывод, Tornado может масштабировать до десятков тысяч открытых соединений, что делает его идеальным для длительных опросов, WebSockets и других приложений, требующих долговременного соединения с каждым пользователем.

  • CherryPycherrypy

    CherryPy - это объектно-ориентированная веб-структура на основе Python, которая позволяет разработчикам создавать веб-приложения почти так же, как они создают любую другую объектно-ориентированную программу на Python. Это приводит к меньшему количеству исходного кода, который разрабатывается за меньшее время. CherryPy используется более 17 лет и используется в производстве на многих сайтах, от самых простых до самых требовательных.

  • Пирамидаpyramid

    Легкий веб-фреймворк, подчеркивающий гибкость и быстрое развитие. Он объединяет самые лучшие идеи из миров Ruby, Python и Perl, обеспечивая структурированную, но чрезвычайно гибкую веб-среду Python. Это также один из первых проектов, использующих появляющийся стандарт WSGI, который допускает широкое повторное использование и гибкость, но только в случае необходимости.

  • турбо-редукторыturbogears

    TurboGears - это масштабируемая веб-платформа, которая может перейти от настройки минимального режима до полнофункционального веб-приложения. Он был создан в 2005 году Кевином Дангуром, а текущую разработку TurboGears2 (turbogears2) возглавляет Марк Рамм. Текущая стабильная версия TurboGears - TurboGears 2.4.1, выпущенная 3 сентября 2019 г.

  • web.pyweb.py

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

  • Grokgrok

    Создан на основе существующих библиотек Zope 3, но призван обеспечить более легкую кривую обучения и более гибкий опыт разработки. Grok делает это, делая упор на конвенции, а не на конфигурации и СУХОЙ (не повторяйте себя).

  • Бутылка bottle

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

  • web2pyweb2py

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

  • Falconfalconframework

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

  • Скрученный, twisted

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


Популярные графические фреймворки Python на основе Python

  • Кивиkivy

    Kivy - это ускоренная платформа OpenGL ES 2 для создания новых пользовательских интерфейсов. Он поддерживает несколько платформ, а именно Windows, Mac OS X, Linux, Android iOS и Raspberry Pi. Он имеет открытый исходный код и включает более 20 виджетов в своем наборе инструментов. Дополнительные материальные объекты доступны через KivyMD.

  • PyQTpyqt

    PyQT - одна из излюбленных кроссплатформенных привязок Python, реализующих библиотеку Qt для среды разработки приложений Qt (принадлежащей Nokia). В настоящее время PyQT доступен для Unix / Linux, Windows, Mac OS X и Sharp Zaurus. Он сочетает в себе лучшее из Python и Qt, и программист может решить, создавать ли программу путем кодирования или с помощью Qt Designer для создания визуальных диалогов.

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

    Последняя версия PyQt - v5.

  • Tkintertkinter

    Tkinter обычно связан с Python с использованием Tk и является стандартной средой графического интерфейса Python. Он популярен благодаря своей простоте и графическому пользовательскому интерфейсу. Он имеет открытый исходный код и доступен по лицензии Python. Одно из преимуществ выбора Tkinter заключается в том, что, поскольку он поставляется по умолчанию, существует множество ресурсов, как кодов, так и справочников. Кроме того, поскольку сообщество старое и активное, есть много пользователей, которые могут помочь вам в случае возникновения вопросов.

  • PyGUIpygui

    PyGUI - это кроссплатформенная среда графического приложения для Unix, Macintosh и Windows. По сравнению с некоторыми другими структурами GUI, PyGUI является самым простым и легким из всех, поскольку API полностью синхронизирован с Python. PyGUI вставляет очень мало кода между платформой GUI и вашим приложением Python, поэтому отображение приложения обычно отображает естественный графический интерфейс платформы.


Популярные математические / научные вычислительные библиотеки в Python

  • NumPynumpy

    NumPy - это фундаментальный пакет для научных вычислений с Python. Среди прочего он содержит:

    • мощный объект N-мерного массива
    • сложные (широковещательные) функции
    • инструменты для интеграции C / C ++ и кода Фортрана
    • полезная линейная алгебра, Фурье преобразование и возможности случайных чисел

    Эти функции также позволяют использовать NumPy в приложениях баз данных общего назначения.

  • SciPyscipy

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

  • matplotlibmatplotlib

    matplotlib - это библиотека черчения для языка программирования Python и его расширения числовой математики NumPy. Он предоставляет объектно-ориентированный API для встраивания графиков в приложения, используя универсальные наборы инструментов GUI, такие как wxPython, Qt или GTK. Существует также процедурный интерфейс «pylab», основанный на конечном автомате (например, OpenGL), который очень похож на MATLAB.

  • пандыpandas

    Pandas - это библиотека с открытым исходным кодом под лицензией BSD, предоставляющая высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для языка программирования Python. Pandas объединяет многие другие функции библиотек, а именно матричные операции NumPy и возможности построения графиков Matplotlib. 10 минут до Pandas a>- хорошее руководство для первого знакомства с Pandas.

  • theano theano

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

  • Блендерblender

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

  • scikit-learnscikit-learn

    scikit-learn - бесплатная библиотека машинного обучения с открытым исходным кодом, написанная на Python. Он поддерживает обучение и тестирование множества различных моделей машинного обучения, а также некоторые базовые методы обработки данных.

  • TensorFlowtensorflow

    TensorFlow - это библиотека программного обеспечения с открытым исходным кодом, разработанная командой Google Brain. Это символическая математическая библиотека, используемая в основном для приложений машинного обучения, таких как нейронные сети.


Популярные решения расширения C:

С расширением C вы можете сделать свой код на Python быстрее. Если ваш вопрос имеет какое-либо отношение к любому из следующих решений, убедитесь, что вы включили соответствующий тег.

  • ctypesctypes

    ctypes - это пакет Python, который включает библиотеки C .dll / .so в чистый Python.

  • SWIGswig

    SWIG - это интерфейсный компилятор, который связывает программы, написанные на C и C ++, с такими языками сценариев, как Python.

  • Cythoncython

    Cython - это оптимизирующий статический компилятор как для языка программирования Python, так и для расширенного языка программирования Cython (на основе Pyrex). Это делает написание C-расширений для Python так же просто, как и сам Python.


Сообщество

Чаты

  • Общайтесь на выделенном IRC-канале #python на Freenode обо всем, что касается Python. Если интересно, посмотрите список Python IRCдля конкретного альтернативного канала.

  • Обсудите Python с другими пользователями Stack Overflow в комнате чата Python.

Другие сайты


Бесплатные книги по программированию на Python


Интерактивное обучение Python

  • Codecademy- изучите основы Python и динамического программирования.
  • CodeSkulptor- интерактивная онлайн-среда разработки для программирования на Python 2
  • CodeSkulptor 3- интерактивная онлайн-среда IDE для программирования на 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 Online IDE

  • ideone- онлайн-среда IDE с поддержкой других популярных языков.
  • repl- среда мгновенного программирования для вашего любимого языка
  • оболочка python- онлайн-консоль от PythonAnywhere
  • pythonfiddle- облачная среда разработки Python
  • pyfiddle- онлайн-консоль Python 2.7 / 3.6

Качество кода

  • Codacy- автоматическая проверка кода, позволяющая быстрее и лучше выпускать код.
  • Codecov- панель мониторинга покрытия кода.
  • CodeFactor- автоматический обзор кода для Git.
  • Пейзаж- метрики размещенного непрерывного кода Python.

Официальный логотип


Активные подкасты

Неактивные подкасты