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 г. – 01 января 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 (vim), бесплатный GNU Emacs (emacs), Eclipse +PyDev (eclipse,pydev) или PyCharm (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, если явно не указано иное.
ВОПРОСЫ-ОТВЕТЫ:
Вот некоторые из распространенных вопросов, с которыми сталкиваются многие новички и которые могут служить канонической повторяющейся целью:
Пользовательский ввод:
- Запрашиваемая у пользователя для ввода, пока они не дают действительный ответ
- Как я могу читать входные данные как числа?
- Получить список чисел в качестве ввода от пользователя
Тестирование ценности:
- Почему
a == b or c or d
всегда принимает значение True? - Как проверить несколько переменных против значения?
Общие ошибки:
Работа со списками:
- Изменения в списках, которые неожиданно отразились на подсписках
- Как удалить элементы из списка во время итерации?
- Как перебирать два списка параллельно?
- Список неожиданно изменился после назначения. Как мне клонировать или скопировать его, чтобы предотвратить это?
- Как сделать плоский список из списка списков?
Работа с диктовками:
- Перебор словарей с использованием циклов for
- Как отсортировать словарь по значению?
- Как я могу добавить новые ключи в словарь?
Общая:
- Использование глобальных переменных в функции
- Как лучше всего вызвать скрипт из другого скрипта?
- Как выполнить программу или вызвать системную команду из Python?
Ссылки:
- Официальная документация для текущей стабильной версии
- Примечания к выпуску текущей стабильной версии (3.11.1)
- Python (язык программирования) (Википедия)
- Python для программистов
- Python - Краткое руководство
- Начало работы с Python
- Перенос кода Python 2 на Python 3
- 2to3 - Автоматический перевод кода с Python 2 на 3
- Некоммерческий Python Software Foundation управляет CPython.
- PSFЛицензионное соглашение для Python 2.7.xи 3.8.x
- Удивительный - Python
- Полный стек Python
Установка внешних пакетов:
Большинство библиотек Python, используемых для простых и сложных сценариев, загружаются с помощью pip, установщика пакетов Python. Он позволяет вам устанавливать и управлять дополнительными пакетами, не входящими в стандартную библиотеку Python. Большинство дистрибутивов Python поставляются с предустановленным pip. Общий синтаксис:
$ pip install SomePackage
[...]
Successfully installed SomePackage
easy_install easy-install
easy_install был выпущен в 2004 году как часть setuptools. В то время он был известен установкой пакетов из PyPI с использованием спецификаторов требований и автоматической установкой зависимостей. Простая установка устарела. Не используйте его. Вместо этого используйте pip.
Популярные библиотеки Python общего пользования:
Простая библиотека Python для выполнения HTTP-запросов. Запросы продаются как «Для людей». Библиотека предназначена для упрощения и универсализации многих методов Python для выполнения HTTP-запросов таким образом, чтобы он был читабельным и простым в использовании. Такие функции, как поддержание активности и пул соединений, автоматически обрабатываются для обеспечения максимальной простоты.
Подушка описывается как «дружественная ветвь» модуля Python PIL, необслуживаемой, но полезной библиотеки изображений. Библиотека использует API-интерфейсы C для обеспечения простого интерфейса Python, позволяющего модифицировать и обрабатывать файлы изображений различными способами.
Scrapy - это быстрый высокоуровневый веб-сканер и фреймворк, используемый для сканирования веб-сайтов и извлечения структурированных данных из их страниц. Он может использоваться для самых разных целей, от интеллектуального анализа данных до мониторинга и автоматического тестирования.
Beautiful Soup - это пакет Python для анализа документов HTML и XML. Он создает дерево синтаксического анализа для проанализированных страниц, которое можно использовать для извлечения данных из HTML, что полезно для очистки веб-страниц. Он доступен для Python 2.7 и Python 3.
Natural Language Toolkit, или NLTK, представляет собой платформу для создания приложений Python для работы с данными человеческого языка и обработки предложений. Он предоставляет простые в использовании интерфейсы для более чем 50 корпусов и лексических ресурсов, таких как WordNet, а также набор библиотек обработки текста для классификации, токенизации, поиска корней, тегов, синтаксического анализа и семантического анализа, а также предоставляет оболочки для промышленной прочности. href="https://en.wikipedia.org/wiki/Natural_language_processing">библиотеки НЛП.
Популярные веб-фреймворкина основе Python:
Если ваш вопрос имеет какое-либо отношение к любой из этих платформ, убедитесь, что вы включили соответствующий тег.
Веб-фреймворк для перфекционистов (с дедлайнами). Django упрощает создание лучших веб-приложений быстрее и с меньшим количеством кода. Django - это веб-фреймворк Python высокого уровня, который способствует быстрой разработке и чистому, прагматичному дизайну. Он позволяет быстро создавать высокопроизводительные элегантные веб-приложения. Django фокусируется на максимально возможной автоматизации и придерживается принципа DRY (Don't Repeat Yourself).
Flask – это легкая микроплатформа и сторонняя библиотека для Python, основанная наwerkzeug,Jinja2 и с добрыми намерениями. Он обеспечивает монолитную структуру и не навязывает зависимости, что обеспечивает более точный контроль и большую свободу для разработки.
Quart — это эволюция Flask API для работы с Asyncioи предоставления ряда функций, которых нет или возможно в Flask.
Tornado - это веб-фреймворк Python и библиотека асинхронных сетей. Используя неблокирующий сетевой ввод / вывод, Tornado может масштабировать до десятков тысяч открытых соединений, что делает его идеальным для длительных опросов, WebSockets и других приложений, требующих долговременного соединения с каждым пользователем.
CherryPy - это объектно-ориентированная веб-структура на основе Python, которая позволяет разработчикам создавать веб-приложения почти так же, как они создают любую другую объектно-ориентированную программу на Python. Это приводит к меньшему количеству исходного кода, который разрабатывается за меньшее время. CherryPy используется более 17 лет и используется в производстве на многих сайтах, от самых простых до самых требовательных.
Легкий веб-фреймворк, отличающийся гибкостью и быстрой разработкой. Он сочетает в себе самые лучшие идеи из мира Ruby, Python и Perl, предоставляя структурированную, но чрезвычайно гибкую веб-инфраструктуру Python. Кроме того, это один из первых проектов, в котором используется развивающийся стандарт WSGI, обеспечивающий широкое повторное использование и гибкость, но только в случае необходимости. Это.
TurboGears — это масштабируемая веб-инфраструктура, которая может перейти от настройки минимального режима к полнофункциональному веб-приложению. Он был создан в 2005 году Кевином Дангуром, а текущую разработку TurboGears2 (turbogears2) возглавляет Марк Рамм. Текущая стабильная версия TurboGears — TurboGears 2.4.1, выпущенная 3 сентября 2019 года.
web.py - это веб-фреймворк для Python, который настолько прост, насколько он мощный. web.py находится в свободном доступе: вы можете использовать его для любых целей без каких-либо ограничений. web.py позволяет писать веб-приложения на Python.
Создан на основе существующих библиотек Zope 3, но призван обеспечить более легкую кривую обучения и более гибкий опыт разработки. Grok делает это, делая упор на конвенции, а не на конфигурации и СУХОЙ (не повторяйте себя).
Бутылка — это быстрый, простой и легкий микровеб-фреймворк WSGI для Python. Он распространяется как единый файловый модуль и не имеет никаких зависимостей, кроме стандартной библиотеки Python.
web2py - это бесплатная полнофункциональная платформа с открытым исходным кодом для быстрой разработки быстрых, масштабируемых, безопасных и переносимых веб-приложений на основе баз данных.
Falcon - это минимальный веб-фреймворк Python для создания микросервисов, серверных приложений и фреймворков более высокого уровня, который поддерживает архитектурный стиль REST. У этого есть и общественные и коммерческие версии.
Twisted - это управляемый событиями сетевой движок с открытым исходным кодом. Это полезно для реализации как клиентов, так и серверов и масштабируется до крупных веб-сайтов и вплоть до встроенных устройств. Twisted облегчает реализацию пользовательских сетевых приложений.
FastAPI - это современная, быстрая (высокопроизводительная) веб-инфраструктура для создания API с Python 3.6+ на основе стандартных подсказок типов Python.
Популярные графические фреймворки Python на основе Python
Kivy — это ускоренная платформа OpenGL ES 2 для создания новых пользовательских интерфейсов. Он поддерживает несколько платформ, а именно Windows, Mac OS X, Linux, Android, iOS и Raspberry Pi. Он имеет открытый исходный код и содержит более 20 виджетов в своем наборе инструментов. Дополнительные объекты материалов доступны черезKivyMD.
PyQT — одна из популярных кроссплатформенных привязок Python, реализующая библиотеку Qt для среды разработки приложений Qt (принадлежит Nokia). В настоящее время PyQT доступен для Unix/Linux, Windows, Mac OS X и Sharp Zaurus. Он сочетает в себе лучшее из Python и Qt, и программист сам решает, создавать ли программу путем кодирования или использовать Qt Designer для создания визуальных диалогов.
Он доступен как в коммерческой, так и в лицензии GPL. Хотя некоторые функции могут быть недоступны в бесплатной версии, если ваше приложение имеет открытый исходный код, вы можете использовать его под свободной лицензией.
Последняя версия PyQt - v5.
Tkinter обычно поставляется в комплекте с Python, используя Tk, и является стандартной структурой графического интерфейса Python. Он популярен благодаря своей простоте и графическому пользовательскому интерфейсу. Он имеет открытый исходный код и доступен под лицензией Python. Одним из преимуществ выбора Tkinter является то, что, поскольку он поставляется по умолчанию, существует множество ресурсов, как кодов, так и справочников. Кроме того, поскольку сообщество старое и активное, многие пользователи могут помочь вам в случае возникновения вопросов.
PyGUI - это кроссплатформенная среда графического приложения для Unix, Macintosh и Windows. По сравнению с некоторыми другими структурами GUI, PyGUI является самым простым и легким из всех, поскольку API полностью синхронизирован с Python. PyGUI вставляет очень мало кода между платформой GUI и вашим приложением Python, поэтому отображение приложения обычно отображает естественный графический интерфейс платформы.
Популярные математические / научные вычислительные библиотеки в Python
NumPy - это фундаментальный пакет для научных вычислений с Python. Среди прочего он содержит:
- мощный объект N-мерного массива
- сложные (широковещательные) функции
- инструменты для интеграции C / C ++ и кода Фортрана
- полезная линейная алгебра, Фурье преобразование и возможности случайных чисел
Эти функции также позволяют использовать NumPy в приложениях баз данных общего назначения.
SciPy - это библиотека с открытым исходным кодом для языка программирования Python, состоящая из математических алгоритмов и функций, часто используемых в науке и технике. SciPy включает в себя алгоритмы и инструменты для таких задач, как оптимизация, кластеризация, дискретные преобразования Фурье, линейная алгебра, обработка сигналов и обработка многомерных изображений. SciPy тесно связан с NumPy и зависит от многих функций NumPy, включая многомерный массив, который используется в качестве базовой структуры данных в SciPy.
matplotlib - это библиотека черчения для языка программирования Python и его расширения числовой математики NumPy. Он предоставляет объектно-ориентированный API для встраивания графиков в приложения, используя универсальные наборы инструментов GUI, такие как wxPython, Qt или GTK. Существует также процедурный интерфейс «pylab», основанный на конечном автомате (например, OpenGL), который очень похож на MATLAB.
Pandas - это библиотека с открытым исходным кодом под лицензией BSD, предоставляющая высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для языка программирования Python. Pandas объединяет многие другие функции библиотек, а именно матричные операции NumPy и возможности построения графиков Matplotlib. 10 минут до Pandas a>- хорошее руководство для первого знакомства с Pandas.
Theano - это широко используемая библиотека на основе Python-C, подходящая для сложных вычислительных математических задач из-за оптимизации, которую она выполняет в интерфейсном коде Python, что делает его высоко оптимизированным с использованием его подпрограмм на основе C. Это очень популярная библиотека для исследователей машинного обучения. Он имеет оптимизированную автоматическую дифференциацию, упрощающую реализацию очень сложных функций и вычисление их градиентов без ошибок.
Blender - это бесплатный набор 3D-анимации с открытым исходным кодом. Он поддерживает весь 3D конвейер - моделирование, такелаж, анимацию, симуляцию, рендеринг, композитинг и отслеживание движения, даже редактирование видео и создание игр.
scikit-learn - бесплатная библиотека машинного обучения с открытым исходным кодом, написанная на Python. Он поддерживает обучение и тестирование множества различных моделей машинного обучения, а также некоторые базовые методы обработки данных.
TensorFlow - это библиотека программного обеспечения с открытым исходным кодом, разработанная командой Google Brain. Это символическая математическая библиотека, используемая в основном для приложений машинного обучения, таких как нейронные сети.
Популярные решения расширения C:
С расширением C вы можете сделать свой код на Python быстрее. Если ваш вопрос имеет какое-либо отношение к любому из следующих решений, убедитесь, что вы включили соответствующий тег.
ctypes
- это пакет Python, который включает библиотеки C .dll / .so в чистый Python.SWIG - это интерфейсный компилятор, который связывает программы, написанные на C и C ++, с такими языками сценариев, как Python.
Cython — это оптимизирующий статический компилятор как для языка программирования Python, так и для расширенного языка программирования Cython (на основе Pyrex). Это делает написание расширений C для Python таким же простым, как и сам Python.
Сообщество
Чаты
Общайтесь на выделенном канале IRC #python на Freenodeобо всем, что связано с Python. Посмотрите список Python IRCдля конкретного альтернативного канала, если интересно.
Обсудите Python с другими пользователями Stack Overflow в комнате чата Python.
Другие сайты
- Индекс пакетов Python. Индекс пакетов Python (PyPI) представляет собой репозиторий программного обеспечения для языка программирования Python.
- Список рассылки репетитора
- список рассылки python-help
- PyCon
- Python Weekly
- Pycoders Weekly
- Python Google Group
- Python Subreddit
- Learn Python Subreddit
- Рейтинг хакера - решение проблем с Python
- Настоящий Python- учебные пособия и информационный бюллетень по Python
- Курс Python- учебные пособия по Python
Бесплатные книги по программированию на Python
- Объектно-ориентированный дизайн на Python
- Учебник для непрограммистов Wikibooks для Python 2.6
- Учебник для непрограммистов Wikibooks для Python 3
- Официальный урок Python
- Развитие навыков в Python версии 2.6 (Стивен Ф. Лотт)
- Байт Python(Swaroop C H.)
- Решение проблем с помощью алгоритмов и структур данных с использованием python(Брэд Миллер и Дэвид Ранум)
- Погрузитесь в Python 3
- Изобретайте свои собственные компьютерные игры с помощью Python (Эл Свигарт)
- Создание игр с помощью Python и Pygame(Альберт Свигарт)
- Обработка естественного языка с помощью Python(Стивен Берд, Юэн Кляйн и Эдвард Лопер)
- Python Bibliotheca
- Python для развлечения (Крис Мейерс)
- Борьба со змеями для детей(Джейсон Р. Бриггс)
- Think Python (файл PDF)(Аллен Дауни)
- Think Python 3(Аллен Дауни)
- Перенос на Python 3(Леннарт Регебро)
- Автоматизируйте скучную работу с помощью Python(Эл Свигарт)
- Книга Python® Notes для профессионалов(GoalKicker)
- Практическое руководство по Python(Ананд Читипоту)
Интерактивное обучение Python
- Codecademy— изучите основы Python и динамического программирования.
- CodeSkulptor— интерактивная онлайн-среда разработки для Python 2.
- CodeSkulptor 3– интерактивная онлайн-среда IDE для Python 3.
- Coursera– онлайн-курс для ознакомления с интерактивным программированием на Python.
- CheckiO– игровой мир, который вы можете исследовать, используя свои навыки программирования на Python.
- Dataquest– интерактивные курсы Python для науки о данных.
- PyCharm Edu– настольное приложение, предлагающее интерактивное изучение Python.
- Interactive Python– содержит модифицированную интерактивную версию книги "Как думать как компьютерщик".
- Python Tutor— визуализация и/или живое программирование на Python.
- Круги по информатике - изучите основы Python 3 в полуинтерактивном режиме.
- CodingBat (Python)- изучив некоторые основы, отточите и отточите свои навыки Python с помощью задач программирования в реальном времени.
Python онлайн курсы
- Интерактивное программирование с помощью Python- Введение в интерактивное программирование с помощью Python.
- Программирование для всех- Введение в программирование с использованием Python.
- Введение в информатику и программирование с использованием Python- новые и обновленное введение в информатику как инструмент для решения реальных аналитических задач с использованием Python 3.
- Введение в информатику. Изучите основы информатики, создавая собственную поисковую систему. и социальная сеть при изучении Python.
Python видео уроки
- Программирование на Python
- Python для начинающих
- Серия руководств по основам Python 3
- Ускоренный курс Python
- Курс Python для начинающих — YouTube
Python для ученых
Python Online IDE
- Ideone– интерактивная среда разработки с поддержкой других популярных языков.
- Replit— онлайн-интерпретатор для Python 2 и 3, упрощающий сохранение и совместное использование кода.
- Оболочка Python— онлайн-консоль от PythonAnywhere.
- pythonfiddle - облачная среда разработки Python.
- pyfiddle- онлайн-консоль Python 2.7 / 3.6.
Качество кода
- Codacy- автоматическая проверка кода, позволяющая быстрее и лучше выпускать код.
- Codecov- панель мониторинга покрытия кода.
- CodeFactor- автоматический обзор кода для Git.