Общие вопросы о 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, и популяризировать использование Python. Главная страница PSF находится по адресу https://www.python.org/psf/.
Пожертвования PSF освобождены от налогов в США. Если вы используете Python и считаете его полезным, пожалуйста, внесите свой вклад через страницу пожертвований PSF.
Существуют ли ограничения авторских прав на использование Python?
Вы можете делать с исходным кодом всё, что захотите, при условии, что вы оставите авторские права и отобразите эти авторские права в любой документации о 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, программирование CGI), разработка программного обеспечения (модульные тесты, ведение журнала, профилирование, парсинг кода Python) и интерфейсы операционной системы (системные вызовы, файловые системы, сокеты TCP/IP). Посмотрите на оглавление Стандартной библиотеки Python, чтобы получить представление о доступном. Также доступно множество расширений сторонних разработчиков. Обратитесь к Индексу пакетов Python, чтобы найти пакеты, которые вас интересуют.
Как работает схема нумерации версий Python?
Версии Python нумеруются как A.B.C или A.B. A — это номер основной версии — он увеличивается только для действительно крупных изменений в языке. B — это номер дополнительной версии, увеличивается для менее радикальных изменений. C — это микроуровень — он увеличивается для каждого выпуска исправления ошибок. См. PEP 6 для получения дополнительной информации об исправлениях ошибок.
Не все выпуски являются выпусками с исправлениями ошибок. В преддверии нового выпуска основной версии создаётся ряд предварительных версий, обозначаемых как альфа, бета или кандидат в релиз. Альфа-версии — это ранние релизы, в которых интерфейсы ещё не окончательно определены; не стоит удивляться, если интерфейс изменится между двумя альфа-версиями. Бета-версии более стабильны, сохраняя существующие интерфейсы, но, возможно, добавляя новые модули, а версии-кандидаты в релиз заморожены, внося изменения только по мере необходимости для исправления критических ошибок.
Альфа, бета и версии-кандидаты в релиз имеют дополнительный суффикс. Суффикс для альфа-версии — «aN» для некоторого небольшого числа N, суффикс для бета-версии — «bN» для некоторого небольшого числа N, а суффикс для версии-кандидата в релиз — «cN» для некоторого небольшого числа N. Другими словами, все версии, помеченные как 2.0aN, предшествуют версиям, помеченным как 2.0bN, которые предшествуют версиям, помеченным как 2.0cN, и те предшествуют версии 2.0.
Вы также можете найти номера версий с суффиксом «+», например «2.2+». Это неопубликованные версии, созданные непосредственно из репозитория разработки CPython. На практике после выпуска окончательной дополнительной версии номер версии увеличивается до следующей дополнительной версии, которая становится версией «a0», например, «2.4a0».
См. также документацию для sys.version, sys.hexversion и sys.version_info.
Как получить копию исходного кода Python?
Самый последний дистрибутив исходного кода Python всегда доступен на python.org по адресу https://www.python.org/downloads/. Последние исходные коды разработки можно получить по адресу https://github.com/python/cpython/.
Дистрибутив исходного кода — это сжатый tar-файл, содержащий весь исходный код 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?
Для сообщения об ошибках или отправки исправлений используйте установку Roundup по адресу https://bugs.python.org/.
Для отправки отчетов об ошибках требуется учетная запись Roundup, что позволит нам связаться с вами, если потребуются дополнительные вопросы. Это также позволит Roundup отправлять вам обновления по мере обработки вашей ошибки. Если вы ранее использовали SourceForge для отправки отчетов об ошибках в Python, вы можете получить свой пароль Roundup через процедуру сброса пароля Roundup.
Дополнительную информацию о разработке 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» и отфильтровать ссылки на «Monty Python»; или, возможно, поискать «Python» и «язык».
Где в мире расположен www.python.org?
Инфраструктура проекта Python расположена по всему миру и управляется командой Python Infrastructure Team. Подробности здесь здесь.
Почему он называется Python?
Когда он начал реализовывать Python, Guido van Rossum также читал опубликованные сценарии из “Летающего цирка Монти Пайтона”, британского комедийного сериала 1970-х годов. Van Rossum посчитал, что ему нужно имя, которое было бы коротким, уникальным и немного загадочным, поэтому он решил назвать язык Python.
Мне нужно любить «Летающий цирк Монти Пайтона»?
Нет, но это помогает. :)
Python в реальном мире
Насколько стабилен Python?
Очень стабилен. Новые стабильные релизы выходят примерно каждые 6–18 месяцев с 1991 года, и, похоже, это тенденция сохранится. По состоянию на версию 3.9 Python будет выпускать крупные обновления каждые 12 месяцев (PEP 602).
Разработчики выпускают исправления для старых версий, поэтому стабильность существующих релизов постепенно улучшается. Релизы с исправлениями, обозначенные третьей частью номера версии (например, 3.5.3, 3.6.2), управляются для обеспечения стабильности; в релиз с исправлениями включаются только исправления известных проблем, и гарантируется, что интерфейсы останутся неизменными на протяжении всей серии исправлений.
Последние стабильные релизы всегда можно найти на странице загрузки Python. Существует две готовые к использованию версии Python: 2.x и 3.x. Рекомендуется версия 3.x, поддерживаемая большинством широко используемых библиотек. Хотя версия 2.x все еще широко используется, она не будет поддерживаться после 1 января 2020 года.
Сколько людей используют 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 в будущем?
См. https://www.python.org/dev/peps/ для предложений по улучшению Python (PEPs). 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]
С интерпретатором документация всегда находится недалеко от студента во время программирования.
Также существуют хорошие IDE для Python. IDLE — кроссплатформенная IDE для Python, написанная на Python с использованием Tkinter. PythonWin — IDE, специфичная для Windows. Пользователи Emacs будут рады узнать, что существует очень хорошая среда Python для Emacs. Все эти среды программирования обеспечивают подсветку синтаксиса, автоматическое отступы и доступ к интерактивному интерпретатору во время кодирования. Полный список сред редактирования Python см. в вики Python.
Если вы хотите обсудить использование Python в образовании, вам может быть интересно присоединиться к списку рассылки edu-sig.
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/faq/general.html