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

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

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

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

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

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

Документацию можно также получить в автономном режиме для установки 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 упрощает создание лучших веб-приложений быстрее и с меньшим количеством кода. Django - это высокоуровневая система Python Web, которая поощряет быстрое развитие и чистый, прагматичный дизайн. Это позволяет быстро создавать высокопроизводительные и элегантные веб-приложения. Django фокусируется на автоматизации как можно больше и придерживается принципа DRY (Do not Repeat Yourself).

  • Колба

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

  • Торнадо

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

  • 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.

  • Grok

    Построенный на существующих библиотеках Zope 3, но предназначенный для обеспечения более легкой кривой обучения и более гибкого развития. Грок делает это, делая упор на соглашение над конфигурацией и DRY (Do not Repeat Yourself).

  • Бутылка

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

  • web2py

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

  • Сокол

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

  • Twisted

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

Популярные математические/научные вычислительные библиотеки в 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.

  • aano

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

  • Блендер

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

  • scikit-learn

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

  • TensorFlow

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


сообщество

Чаты

  • Чат на выделенном канале IRС#python на Freenode для всех вещей Python. Посмотрите на список IRC Python для конкретного альтернативного канала, если он заинтересован.

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

Другие сайты


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


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

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

Курсы Python Online


Видеоуроки Python


Python для ученых


Python Online IDE

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