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

против

C программа

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

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

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

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

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

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

Философия Python лаконично сформулирована в 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.

  • нлтк

    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 делает это, делая акцент на соглашении, а не на конфигурации и СУХОЙ (не повторяйте себя).

  • Бутылка

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

  • web2py

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

  • Сокол

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

  • Витая

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


Популярные графические фреймворки Python на основе 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

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

  • PyGUI

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


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

  • NumPy

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

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

    Эти функции также позволяют использовать 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-пакет с открытым исходным кодом. Он поддерживает весь трехмерный конвейер - моделирование, такелаж, анимацию, симуляцию, рендеринг, композитинг и отслеживание движения, даже редактирование видео и создание игр.

  • scikit-learn

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

  • TensorFlow

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


сообщество

Чаты

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

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

Другие сайты


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


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

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

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


Python видео уроки


Python для ученых


Python Online IDE

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

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

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

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

python logo


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

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