Spec-Zone.ru › Python 3.14

Общие вопросы о Python

  • Общие сведения

    • Что такое Python?
    • Что такое Python Software Foundation?
    • Есть ли ограничения авторского права на использование Python?
    • Почему вообще был создан Python?
    • Для чего подходит Python?
    • Как устроена схема нумерации версий Python?
    • Как получить копию исходного кода Python?
    • Где найти документацию по Python?
    • Я никогда раньше не программировал. Есть ли учебник по Python?
    • Есть ли посвящённая Python группа новостей или список рассылки?
    • Как получить бета-версию Python?
    • Как отправить сообщение об ошибке или патч для Python?
    • Есть ли опубликованные статьи о Python, на которые можно сослаться?
    • Есть ли книги о Python?
    • Где находится www.python.org?
    • Почему он называется Python?
    • Обязательно ли мне нравиться «Летающий цирк Монти Пайтона»?
  • Python в реальном мире

    • Насколько стабилен Python?
    • Сколько человек используют Python?
    • Создавались ли на Python значимые проекты?
    • Какие новые разработки ожидаются в Python в будущем?
    • Разумно ли предлагать несовместимые изменения в Python?
    • Подходит ли 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, и популяризировать использование Python. Главная страница PSF находится по адресу https://www.python.org/psf/.

В США пожертвования PSF освобождены от налогов. Если вы используете Python и считаете его полезным, пожалуйста, поддержите фонд через страницу пожертвований PSF.

Есть ли ограничения авторского права на использование Python?

Вы можете делать с исходным кодом всё, что захотите, если сохраните уведомления об авторских правах и будете указывать их в любой документации по Python, которую создаёте. При соблюдении правил авторского права Python можно использовать в коммерческих целях, продавать копии Python в исходном или двоичном виде (с изменениями или без них), а также продавать продукты, в которые Python включён в той или иной форме. Разумеется, нам всё же хотелось бы знать обо всех случаях коммерческого использования Python.

Дополнительные пояснения и полный текст лицензии PSF приведены на странице лицензии.

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

Почему вообще был создан Python?

Вот очень краткое изложение того, с чего всё началось, написанное Guido van Rossum:

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

У меня было немало претензий к языку ABC, но многие его возможности мне нравились. Язык ABC (и его реализацию) было невозможно расширить, чтобы устранить мои претензии — фактически отсутствие расширяемости было одной из его главных проблем. У меня был некоторый опыт работы с Modula-2+, я беседовал с разработчиками Modula-3 и читал отчёт о Modula-3. Именно из Modula-3 были заимствованы синтаксис и семантика исключений, а также некоторые другие особенности Python.

Я работал в группе распределённой операционной системы Amoeba в CWI. Нам требовался более удобный способ системного администрирования, чем написание программ на C или сценариев Bourne shell, поскольку у Amoeba был собственный интерфейс системных вызовов, к которому нельзя было легко обратиться из Bourne shell. Опыт обработки ошибок в 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. Альфа-версии — ранние выпуски, интерфейсы которых ещё не окончательно определены; изменения интерфейса между двумя альфа-версиями вполне возможны. Бета-версии стабильнее: существующие интерфейсы сохраняются, но могут добавляться новые модули. В версиях-кандидатах состав функций фиксируется, и изменения вносятся только при необходимости исправить критические ошибки.

К номерам альфа-, бета-версий и версий-кандидатов добавляется суффикс:

  • Суффикс альфа-версии — «aN», где N — небольшое число.
  • Суффикс бета-версии — «bN», где N — небольшое число.
  • Суффикс версии-кандидата — «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.gz, содержащий полный исходный код на C, документацию в формате Sphinx, модули библиотеки Python, примеры программ и несколько полезных программных продуктов, распространяемых свободно. Исходный код компилируется и работает без дополнительной настройки на большинстве платформ UNIX.

Дополнительную информацию о получении исходного кода и его компиляции см. в разделе «Начало работы» руководства разработчика Python.

Где найти документацию по Python?

Официальная документация для текущей стабильной версии Python доступна по адресу https://docs.python.org/3/. Версии в форматах EPUB, обычного текста и 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?

Альфа- и бета-версии доступны по адресу 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 году и теперь сильно устарела.

Guido van Rossum и Jelke de Boer, «Интерактивное тестирование удалённых серверов с помощью языка программирования 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?

Когда Guido van Rossum начал разрабатывать Python, он также читал опубликованные сценарии «Летающего цирка Монти Пайтона» — комедийного сериала BBC 1970-х годов. Van Rossum решил, что ему нужно короткое, необычное и немного загадочное название, поэтому назвал язык 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 Enhancement Proposals (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 есть и хорошие интегрированные среды разработки. IDLE — кроссплатформенная среда разработки для Python, написанная на Python с использованием Tkinter. Пользователи Emacs будут рады узнать, что для Emacs существует очень хороший режим Python. Все эти среды программирования обеспечивают подсветку синтаксиса, автоматические отступы и доступ к интерактивному интерпретатору во время написания кода. Полный список сред разработки Python см. в вики Python.

Если вы хотите обсудить использование Python в образовании, возможно, вам будет интересно присоединиться к списку рассылки edu-sig.

© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/faq/general.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API