Общие вопросы и ответы по 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 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 — номер микроверсии — он увеличивается для каждого исправления ошибок.
Не все релизы являются исправлениями ошибок. В преддверии выпуска новой функции делается ряд предварительных релизов, обозначенных как альфа, бета или релиз-кандидат. Альфа-версии — это ранние релизы, в которых интерфейсы ещё не окончательно определены; не стоит удивляться изменению интерфейса между двумя альфа-версиями. Бета-версии более стабильны, сохраняя существующие интерфейсы, но, возможно, добавляя новые модули, а релиз-кандидаты заморожены, внося изменения только по необходимости для исправления критических ошибок.
Альфа, бета и релиз-кандидатные версии имеют дополнительный суффикс:
- Суффикс для альфа-версии — «aN» для некоторого небольшого числа N.
- Суффикс для бета-версии — «bN» для некоторого небольшого числа N.
- Суффикс для релиз-кандидатной версии — «rcN» для некоторого небольшого числа N.
Другими словами, все версии, помеченные как 2.0aN, предшествуют версиям, помеченным как 2.0bN, которые предшествуют версиям, помеченным как 2.0rcN, а те предшествуют 2.0.
Вы также можете найти номера версий с суффиксом «+», например, «2.2+». Это невыпущенные версии, построенные непосредственно из репозитория разработки CPython. На практике после выпуска окончательной дополнительной версии версия увеличивается до следующей дополнительной версии, которая становится версией «a0», например, «2.4a0».
См. Руководство разработчика для получения дополнительной информации о цикле разработки и PEP 387 для получения дополнительной информации о политике обратной совместимости Python. См. также документацию для 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?
Для отправки отчета об ошибке или исправления используйте систему отслеживания задач по адресу https://github.com/python/cpython/issues.
Дополнительную информацию о разработке Python можно найти в Руководстве разработчика Python.
Есть ли опубликованные статьи о Python, на которые я могу сослаться?
Наверное, лучше всего сослаться на вашу любимую книгу о Python.
Первая статья о Python была написана в 1991 году и сейчас достаточно устарела. Ссылка на эту статью.
Guido van Rossum и Jelke de Boer, «Interactively Testing Remote Servers Using the Python Programming Language», 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, Гвидо ван Россум также читал опубликованные сценарии из “Летающего цирка Монти Пайтона”, комедийного сериала BBC 1970-х годов. Ван Россум посчитал, что ему нужно имя, которое было бы коротким, уникальным и немного загадочным, поэтому он решил назвать язык 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 всё ещё широко используется, она больше не поддерживается.
Сколько людей используют Python?
Вероятно, миллионы пользователей, хотя точное количество сложно определить.
Python доступен для бесплатной загрузки, поэтому нет данных о продажах, и он доступен с многих разных сайтов и упакован с многими дистрибутивами Linux, поэтому статистика загрузок также не даёт полной картины.
Группа новостей comp.lang.python очень активна, но не все пользователи Python публикуют в ней сообщения или даже читают её.
Были ли выполнены значимые проекты на Python?
Список проектов, использующих Python, см. на странице https://www.python.org/about/success. Просматривая материалы прошлых конференций Python по адресу https://www.python.org/community/workshops/, можно увидеть вклад многих компаний и организаций.
К высокопрофильным проектам на 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]
С интерпретатором документация всегда находится рядом со студентом во время программирования.
Также существуют хорошие IDE для Python. IDLE — кроссплатформенная IDE для Python, написанная на Python с использованием Tkinter. Пользователи Emacs будут рады узнать, что есть очень хорошая среда программирования Python для Emacs. Все эти среды программирования предоставляют подсветку синтаксиса, автоматическое отступы и доступ к интерактивному интерпретатору во время кодирования. Полный список сред редактирования Python см. на странице вики Python.
Если вы хотите обсудить использование Python в образовании, вы можете присоединиться к списку рассылки edu-sig.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/faq/general.html