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

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 stackoverflow")

против

Си-программа

#include <stdio.h>
int main(void) {
    printf("hello stackoverflow");
    return 0;
}

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

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

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

Как и другие динамические языки, Python часто используется в качестве скриптового языка, но также используется в широком диапазоне не скриптовых контекстов. Используя сторонние инструменты, код Python может быть упакован в автономные исполняемые программы. Интерпретаторы Python доступны для многих операционных систем.

CPython, эталонная реализация Python, является бесплатным программным обеспечением с открытым исходным кодом. У него есть модель разработки на уровне сообщества, как и почти все ее альтернативные реализации. Существует множество реализаций, более подходящих для конкретных сред или задач (см. реализации Python в вики Python).

Философия Python кратко сформулирована в The Zen of Python, написанном Тимом Питерсом, который можно прочитать, выполнив эту команду, в интерактивном интерпретаторе Python:

>>> import this

В отличие от многих других языков, Python использует синтаксис на основе отступов (в котором табуляции и пробелы не являются взаимозаменяемыми). Это может занять некоторое привыкание для программистов, которые знакомы с использованием фигурных скобок.

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
>>>

Чтобы помочь с переходом, рекомендуется использовать правильно настроенный текстовый редактор или IDE. Python поставляется с базовой IDE IDLE (), чтобы вы могли начать работу. Другими популярными примерами являются благотворительная программа Vim, бесплатный GNU Emacs, Eclipse + PyDev или PyCharm. Взгляните на этот список сравнения IDE, чтобы узнать о многих других альтернативах.

Существует также руководство по стилю для Python под названием PEP 8, которое призвано сделать код Python более читабельным и последовательным. Это руководство (должно быть соблюдено) всем сообществом разработчиков Python.


Рекомендации по маркировке:

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

Кроме того, рассмотрите возможность включения тега для конкретной реализации (, и т.д.), Если вы используете другой, кроме - предполагается использование , если явно не указано иное.


Ссылки:


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

  • Запросы

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

  • Подушка

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

  • Scrapy

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

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

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

  • nltk

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


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

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

  • Джанго

    Веб-фреймворк для перфекционистов (с указанием сроков). Django облегчает создание лучших веб-приложений быстрее и с меньшим количеством кода. Django - это веб-среда Python высокого уровня, которая способствует быстрой разработке и чистому, прагматичному дизайну. Это позволяет быстро создавать высокопроизводительные и элегантные веб-приложения. Django стремится максимально автоматизировать и придерживаться принципа СУХОЙ (не повторяйся).

  • Колба

    Flask - это микро-фреймворк для Python, основанный на Werkzeug, Jinja 2 и добрых намерениях.

  • Кварта

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

  • Торнадо

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

  • CherryPy

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

  • Пирамида

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

  • TurboGears

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

  • web.py

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

  • Грок

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

  • Бутылка

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

  • web2py

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

  • Сокол

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

  • Витая

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


Популярная платформа Python GUI на основе Python

  • Киви

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

  • PyQT

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

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

  • Ткинтер

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

  • PyGUI

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


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

  • NumPy

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

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

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

  • SciPy

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

  • matplotlib

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

  • панды

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

  • Теано

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

  • Блендер

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

  • scikit-learn

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

  • TensorFlow

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


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

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

  • ctypes

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

  • глоток

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

  • Cython

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


сообщество

Чаты

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

  • Поговорите о Python с другими пользователями Qaru в чате Python.

Другие сайты


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


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

  • Codecademy - Изучите основы Python и динамического программирования
  • CodeSkulptor - интерактивная онлайн-среда разработки для программирования на Python 2
  • CodeSkulptor 3 - интерактивная онлайн-среда разработки для программирования на Python 3
  • Coursera - онлайн-курс для знакомства с интерактивным программированием на Python
  • CheckiO - игровой мир, который вы можете исследовать, используя свои навыки программирования на Python
  • Repl.it - онлайн-переводчик для Python 2 и 3, упрощающий сохранение и совместное использование кода
  • PyCharm Edu - настольное приложение, которое предлагает интерактивное обучение Python
  • Интерактивный Python - включает в себя измененную, интерактивную версию "Как мыслить как компьютерный ученый"
  • Python Tutor - Визуализация и/или живое кодирование на Python
  • Круги по компьютерным наукам - Изучите основы Python 3 в полуинтерактивном режиме.

Онлайн курсы Python


Видео уроки по Python


Python для ученых


Python Online IDE

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

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

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

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

python logo


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

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