Общие вопросы о 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 — номер микроверсии; он увеличивается при каждом выпуске исправлений ошибок.
Не все выпуски предназначены для исправления ошибок. Перед выпуском новой версии с функциональными изменениями выходит серия версий для разработки, обозначаемых как альфа-версия, бета-версия или кандидат на выпуск. Альфа-версии выходят на раннем этапе, когда интерфейсы ещё не окончательно сформированы; изменения интерфейса между двумя альфа-версиями вполне ожидаемы. Бета-версии стабильнее: существующие интерфейсы сохраняются, но могут добавляться новые модули. Интерфейсы кандидатов на выпуск заморожены; в них вносятся только изменения, необходимые для исправления критических ошибок.
К номерам альфа-версий, бета-версий и кандидатов на выпуск добавляется суффикс:
- Суффикс альфа-версии — «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/. 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?
Альфа- и бета-версии доступны по адресу 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 — кроссплатформенная среда разработки для Python, написанная на Python с использованием Tkinter. Пользователям Emacs будет приятно узнать, что для Emacs существует очень хороший режим Python. Все эти среды программирования обеспечивают подсветку синтаксиса и автоматические отступы, а также доступ к интерактивному интерпретатору во время написания кода. Полный список сред разработки для Python см. в вики Python.
Если вы хотите обсудить использование Python в образовании, возможно, вам будет интересно подписаться на список рассылки edu-sig.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/faq/general.html