Общие вопросы о Python
-
- Что такое Python?
- Что такое Python Software Foundation?
- Существуют ли ограничения авторского права на использование Python?
- Почему вообще был создан Python?
- Для чего подходит Python?
- Как устроена схема нумерации версий Python?
- Как получить копию исходного кода Python?
- Где найти документацию по Python?
- Я никогда раньше не программировал. Есть ли учебник по Python?
- Есть ли посвящённая Python группа новостей или список рассылки?
- Как получить бета-версию Python?
- Как отправить отчёт об ошибке или исправление для Python?
- Есть ли опубликованные статьи о Python, на которые можно сослаться?
- Есть ли книги о Python?
- Где находится www.python.org?
- Почему язык называется Python?
- Обязательно ли мне нравиться «Летающий цирк Монти Пайтона»?
Общие сведения
Что такое Python?
Python — это интерпретируемый интерактивный объектно-ориентированный язык программирования. Он поддерживает модули, исключения, динамическую типизацию, динамические типы данных очень высокого уровня и классы. Помимо объектно-ориентированного программирования, он поддерживает несколько других парадигм программирования, таких как процедурное и функциональное программирование. Python сочетает исключительную мощь с очень ясным синтаксисом. Он предоставляет интерфейсы ко множеству системных вызовов и библиотек, а также к различным оконным системам; его можно расширять на C или C++. Его также можно использовать как язык расширения для приложений, которым требуется программируемый интерфейс. Наконец, Python переносим: он работает во многих вариантах Unix, включая Linux и macOS, а также в Windows.
Чтобы узнать больше, начните с раздела Учебник по Python. На странице Руководство для начинающих по Python приведены ссылки на другие вводные учебники и ресурсы для изучения Python.
Что такое Python Software Foundation?
Python Software Foundation — независимая некоммерческая организация, владеющая авторскими правами на версии Python 2.1 и новее. Цель PSF — развитие технологий с открытым исходным кодом, связанных с языком программирования Python, и популяризация его использования. Сайт PSF находится по адресу https://www.python.org/psf/.
В США пожертвования в PSF не облагаются налогом. Если вы используете Python и считаете его полезным, пожалуйста, поддержите фонд через страницу пожертвований PSF.
Существуют ли ограничения авторского права на использование Python?
Вы можете делать с исходным кодом всё что угодно, если сохраните в нём сведения об авторских правах и укажете их в любой подготовленной вами документации по Python. При соблюдении правил авторского права Python можно использовать в коммерческих целях, продавать его копии в исходном или двоичном виде (с изменениями или без них), а также продавать продукты, в которые Python включён в той или иной форме. Разумеется, нам всё же хотелось бы знать обо всех случаях коммерческого использования Python.
Дополнительные пояснения и полный текст лицензии PSF см. на странице лицензии.
Логотип Python является товарным знаком, и в некоторых случаях для его использования требуется разрешение. Дополнительную информацию см. в правилах использования товарных знаков.
Почему вообще был создан Python?
Вот очень краткое изложение того, с чего всё началось, написанное Гвидо ван Россумом:
У меня был большой опыт реализации интерпретируемого языка в группе ABC в CWI, и работа с этой группой многому научила меня в области проектирования языков. Именно оттуда берут начало многие особенности Python, в том числе использование отступов для группировки операторов и наличие типов данных очень высокого уровня (хотя в Python все детали устроены иначе).
У меня было немало претензий к языку ABC, но многие его особенности мне нравились. Расширить язык ABC (или его реализацию), чтобы устранить мои претензии, было невозможно — и в самом деле, отсутствие расширяемости было одной из его главных проблем. У меня был некоторый опыт работы с Modula-2+, я общался с разработчиками Modula-3 и прочитал описание Modula-3. Именно от Modula-3 происходят синтаксис и семантика обработки исключений, а также некоторые другие особенности Python.
Я работал в группе распределённой операционной системы Amoeba в CWI. Нам требовался более удобный способ системного администрирования, чем написание программ на C или сценариев командной оболочки Bourne, поскольку у Amoeba был собственный интерфейс системных вызовов, к которому нельзя было легко обратиться из оболочки Bourne. Мой опыт обработки ошибок в Amoeba помог мне остро осознать, насколько важны исключения как особенность языка программирования.
Мне пришло в голову, что сценарный язык с синтаксисом, похожим на ABC, но с доступом к системным вызовам Amoeba, решил бы эту задачу. Я понял, что было бы неразумно писать язык, предназначенный только для Amoeba, поэтому решил, что мне нужен язык с возможностью общего расширения.
Во время рождественских каникул 1989 года у меня было много свободного времени, и я решил попробовать. В течение следующего года, продолжая в основном работать над проектом в свободное время, я всё чаще использовал Python в проекте Amoeba, а отзывы коллег помогли мне внести множество ранних улучшений.
В феврале 1991 года, проработав над проектом чуть больше года, я решил опубликовать сообщение в USENET. Продолжение — в файле Misc/HISTORY.
Для чего подходит Python?
Python — это высокоуровневый язык программирования общего назначения, применимый к множеству различных классов задач.
В состав языка входит большая стандартная библиотека, охватывающая такие области, как обработка строк (регулярные выражения, Unicode, вычисление различий между файлами), интернет-протоколы (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), разработка программного обеспечения (модульное тестирование, ведение журналов, профилирование, разбор кода Python) и интерфейсы операционной системы (системные вызовы, файловые системы, сокеты TCP/IP). Чтобы получить представление о доступных возможностях, ознакомьтесь с оглавлением раздела Стандартная библиотека Python. Доступен также широкий выбор сторонних расширений. Найти интересующие вас пакеты можно в Индексе пакетов Python.
Как устроена схема нумерации версий Python?
Номера версий Python имеют формат «A.B.C» или «A.B»:
- A — номер основной версии; он увеличивается только при действительно крупных изменениях языка.
- B — номер дополнительной версии; он увеличивается при менее значительных изменениях.
- C — номер исправительной версии; он увеличивается при каждом выпуске с исправлениями ошибок.
Не все выпуски предназначены для исправления ошибок. Перед выпуском новой версии с функциями выпускается серия версий для разработки, обозначаемых как alpha, beta или release candidate. Alpha-версии — это ранние выпуски, в которых интерфейсы ещё не окончательно сформированы; между двумя alpha-выпусками интерфейсы вполне могут измениться. Beta-версии стабильнее: в них сохраняются существующие интерфейсы, но могут добавляться новые модули. В release candidate изменения заморожены, за исключением необходимых исправлений критических ошибок.
В номерах alpha-, beta-версий и release candidate используется дополнительный суффикс:
- Суффикс alpha-версии — «aN», где N — небольшое число.
- Суффикс beta-версии — «bN», где N — небольшое число.
- Суффикс release candidate — «rcN», где N — небольшое число.
Иными словами, все версии с обозначением 2.0aN выходят раньше версий с обозначением 2.0bN, за которыми следуют версии 2.0rcN, а они выходят раньше версии 2.0.
В номерах версий также может встречаться суффикс «+», например «2.2+». Это ещё не выпущенные версии, собранные непосредственно из репозитория разработки CPython. На практике после выпуска последней дополнительной версии номер увеличивается до следующей дополнительной версии, которая становится версией «a0», например «2.4a0».
Дополнительную информацию о цикле разработки см. в Руководстве разработчика, а о политике обратной совместимости Python — в документе PEP 387. См. также документацию по sys.version, sys.hexversion и sys.version_info.
Как получить копию исходного кода Python?
Последний дистрибутив исходного кода Python всегда доступен на python.org по адресу https://www.python.org/downloads/. Последние исходные файлы для разработки можно получить по адресу https://github.com/python/cpython/.
Дистрибутив исходного кода — это архив tar, сжатый gzip, который содержит полный исходный код на C, документацию в формате Sphinx, модули библиотеки Python, примеры программ и несколько полезных свободно распространяемых программных продуктов. Исходный код можно собрать и запустить без дополнительной настройки на большинстве платформ UNIX.
Дополнительную информацию о получении исходного кода и его компиляции см. в разделе «Начало работы» Руководства разработчика Python.
Где найти документацию по Python?
Официальная документация для текущей стабильной версии Python доступна по адресу https://docs.python.org/3/. Версии в форматах PDF и обычного текста, а также HTML-версии для скачивания доступны по адресу https://docs.python.org/3/download.html.
Документация написана на reStructuredText и обрабатывается с помощью инструмента документирования Sphinx. Исходный код документации в формате reStructuredText входит в дистрибутив исходного кода Python.
Я никогда раньше не программировал. Есть ли учебник по Python?
Доступно множество учебников и книг. В официальную документацию входит Учебник по Python.
На странице Руководство для начинающих можно найти информацию для тех, кто только начинает изучать Python, в том числе списки учебников.
Есть ли посвящённая Python группа новостей или список рассылки?
Существуют группа новостей comp.lang.python и список рассылки python-list. Группа новостей и список рассылки связаны между собой: если вы читаете новости, подписываться на список рассылки необязательно. В comp.lang.python очень большой поток сообщений — ежедневно публикуются сотни сообщений, — и читателям Usenet часто проще справляться с таким объёмом.
Анонсы выпусков новых программ и мероприятий публикуются в comp.lang.python.announce — модерируемом списке с небольшим потоком сообщений, который получает около пяти сообщений в день. Он доступен как список рассылки python-announce.
Дополнительную информацию о других списках рассылки и группах новостей можно найти по адресу https://www.python.org/community/lists/.
Как получить бета-версию Python?
Alpha- и beta-версии доступны по адресу https://www.python.org/downloads/. Обо всех выпусках сообщается в группах новостей comp.lang.python и comp.lang.python.announce, а также на главной странице Python по адресу https://www.python.org/; также доступна RSS-лента новостей.
Вы также можете получить версию Python для разработки через Git. Подробности см. в Руководстве разработчика Python.
Как отправить отчёт об ошибке или исправление для Python?
Чтобы сообщить об ошибке или отправить исправление, воспользуйтесь системой отслеживания задач по адресу https://github.com/python/cpython/issues.
Дополнительную информацию о разработке Python см. в Руководстве разработчика Python.
Есть ли опубликованные статьи о Python, на которые можно сослаться?
Вероятно, лучше всего сослаться на вашу любимую книгу о Python.
Самая первая статья о Python была написана в 1991 году и теперь сильно устарела.
Гвидо ван Россум и Йелке де Бур, «Интерактивное тестирование удалённых серверов с использованием языка программирования Python», CWI Quarterly, том 4, выпуск 4 (декабрь 1991), Амстердам, стр. 283–303.
Есть ли книги о Python?
Да, их много, и продолжают выходить новые. Список можно найти в вики python.org по адресу https://wiki.python.org/moin/PythonBooks.
Можно также поискать «Python» в интернет-магазинах книг и отфильтровать результаты, относящиеся к Монти Пайтону; или, возможно, искать «Python» вместе со словом «язык».
Где находится www.python.org?
Инфраструктура проекта Python расположена по всему миру, и ею управляет команда Python Infrastructure Team. Подробности — здесь.
Почему язык называется Python?
Когда Гвидо ван Россум начал реализовывать Python, он также читал опубликованные сценарии «Летающего цирка Монти Пайтона» — комедийного сериала BBC 1970-х годов. Ван Россум решил, что ему нужно короткое, необычное и немного загадочное название, и поэтому назвал язык Python.
Обязательно ли мне нравиться «Летающий цирк Монти Пайтона»?
Нет, но это помогает. :)
Python в реальном мире
Насколько стабилен Python?
Очень стабилен. Начиная с 1991 года, новые стабильные версии выходят примерно каждые 6–18 месяцев, и, вероятно, так будет и дальше. Начиная с версии 3.9, новая версия Python с функциональными изменениями будет выходить каждые 12 месяцев (PEP 602).
Разработчики выпускают версии с исправлениями ошибок для более старых версий, поэтому стабильность уже выпущенных версий постепенно повышается. Выпуски с исправлениями ошибок, обозначаемые третьим компонентом номера версии (например, 3.5.3, 3.6.2), предназначены для повышения стабильности: в них включаются только исправления известных проблем, и гарантируется, что интерфейсы останутся неизменными на протяжении всей серии таких выпусков.
Последние стабильные версии всегда можно найти на странице загрузки Python. Рекомендуемая версия — Python 3.x; её поддерживает большинство широко используемых библиотек. Поддержка Python 2.x больше не осуществляется.
Сколько людей используют Python?
Вероятно, пользователей миллионы, хотя точное число определить сложно.
Python можно бесплатно скачать, поэтому данных о продажах нет. Кроме того, он доступен на множестве различных сайтов и входит в состав многих дистрибутивов Linux, поэтому статистика загрузок также не даёт полной картины.
В группе новостей comp.lang.python очень активное общение, но не все пользователи Python пишут в неё или даже читают её.
Создавались ли на Python крупные проекты?
Список проектов, использующих Python, см. по адресу https://www.python.org/about/success. В материалах прошедших конференций по Python можно найти доклады множества разных компаний и организаций.
Среди известных проектов на Python — менеджер списков рассылки Mailman и сервер приложений Zope. Некоторые дистрибутивы Linux, в особенности Red Hat, написали часть или всё программное обеспечение для установки и системного администрирования на Python. Среди компаний, использующих Python внутри организации, — Google, Yahoo и Lucasfilm Ltd.
Какие новые разработки ожидаются для Python в будущем?
Предложения по улучшению Python (PEP) см. по адресу https://peps.python.org/. PEP — это проектные документы с описанием предлагаемой новой функции Python, краткой технической спецификацией и обоснованием. Найдите PEP под названием «Расписание выпуска Python X.Y», где X.Y — версия, которая ещё не была выпущена публично.
Обсуждение новых разработок ведётся в списке рассылки python-dev.
Разумно ли предлагать несовместимые изменения в Python?
Как правило, нет. В мире уже существуют миллионы строк кода на Python, поэтому любые изменения языка, нарушающие работу даже небольшой доли существующих программ, нежелательны. Даже если можно предоставить программу для преобразования кода, останется проблема обновления всей документации: о Python написано много книг, и мы не хотим одним махом сделать их все устаревшими.
Если функцию необходимо изменить, важно предусмотреть постепенный переход на новую версию. В документе PEP 5 описана процедура внесения несовместимых изменений с минимальными неудобствами для пользователей.
Подходит ли Python для начинающих программистов?
Да.
Часто обучение начинают с процедурного языка со статической типизацией, например Pascal, C или подмножества C++ или Java. Возможно, студентам было бы полезнее начать с Python. У Python очень простой и последовательный синтаксис и большая стандартная библиотека, а главное — изучение Python на вводном курсе программирования позволяет студентам сосредоточиться на важных навыках, таких как декомпозиция задач и проектирование типов данных. На Python студентов можно быстро познакомить с основными понятиями, например циклами и процедурами. Вероятно, уже на первом курсе они смогут работать с объектами, определёнными пользователем.
Для студента, который никогда раньше не программировал, язык со статической типизацией может показаться неестественным. Он добавляет сложность, с которой студенту придётся справляться, и замедляет темп курса. Студенты учатся мыслить как компьютер, разбивать задачи на части, проектировать согласованные интерфейсы и инкапсулировать данные. Хотя в долгосрочной перспективе важно научиться использовать язык со статической типизацией, это не обязательно лучшая тема для первого курса программирования.
Многие другие особенности Python делают его хорошим первым языком. Как и Java, Python располагает большой стандартной библиотекой, поэтому уже в самом начале курса студентам можно давать программные проекты, которые что-то делают. Задания не ограничиваются стандартными калькуляторами с четырьмя функциями и программами для сверки чеков. Используя стандартную библиотеку, студенты могут получить удовольствие от работы над практическими приложениями, изучая основы программирования. Работа со стандартной библиотекой также учит повторно использовать код. Сторонние модули, например PyGame, также помогают расширить возможности студентов.
Интерактивный интерпретатор Python позволяет студентам проверять особенности языка во время программирования. Они могут держать окно с интерпретатором открытым, одновременно вводя исходный код программы в другом окне. Если они не помнят методы списка, то могут сделать, например, следующее:
>>> L = []
>>> dir(L)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
'__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__',
'__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__',
'__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__',
'__sizeof__', '__str__', '__subclasshook__', 'append', 'clear',
'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove',
'reverse', 'sort']
>>> [d for d in dir(L) if '__' not in d]
['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> help(L.append)
Help on built-in function append:
append(...)
L.append(object) -> None -- append object to end
>>> L.append(1)
>>> L
[1]
Благодаря интерпретатору документация всегда под рукой у студента во время программирования.
Для Python также существуют хорошие IDE. IDLE — кроссплатформенная IDE для Python, написанная на Python с использованием Tkinter. Пользователям Emacs будет приятно узнать, что для Emacs есть очень хороший режим Python. Все эти среды программирования обеспечивают подсветку синтаксиса, автоматические отступы и доступ к интерактивному интерпретатору во время написания кода. Полный список сред для редактирования кода на Python см. в вики Python.
Если вы хотите обсудить использование Python в образовании, вам может быть интересно присоединиться к списку рассылки edu-sig.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/faq/general.html