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

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

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

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

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

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

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

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

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

>>> import this

Вы также можете импортировать внешние элементы:

>>> from item import *

Или укажите, что импортировать:

>>> from item import some_func

Также вы можете указать название импортируемого модуля:

>>> import this as that

Доступ к документации можно также получить в автономном режиме для установки Python следующим образом:

  1. Зайдя в Your_Python_install_dir/Doc. Существует полная документация по Python для версии Python, установленной на вашем компьютере.
  2. При pydoc x или python -m pydoc x из командной строки или терминала отображается документация для модуля x.

В отличие от многих других языков, 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:

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

  • Джанго

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

  • Колба

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

  • Торнадо

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

  • CherryPy

    CherryPy - это питонская, объектно-ориентированная веб-инфраструктура, которая позволяет разработчикам создавать веб-приложения почти так же, как и любые другие объектно-ориентированные программы на 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

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

  • 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 Online IDE

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