Общие вопросы и ответы по 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), разработка программного обеспечения (тестирование модулей, ведение журнала, профилирование, парсинг кода Python) и интерфейсы операционной системы (системные вызовы, файловые системы, сокеты TCP/IP). Посмотрите на оглавление Стандартной библиотеки Python, чтобы получить представление о доступных возможностях. Также доступно множество сторонних расширений. Обратитесь к индексу пакетов Python, чтобы найти пакеты, представляющие интерес для вас.
Как работает схема нумерации версий Python?
Версии Python нумеруются как «A.B.C» или «A.B»:
- A — это номер основной версии — он увеличивается только при очень существенных изменениях в языке.
- B — это номер дополнительной версии — он увеличивается при менее значительных изменениях.
- C — это номер микроверсии — он увеличивается для каждого выпуска исправления ошибок.
См. PEP 6 для получения дополнительной информации об исправлениях ошибок.
Не все релизы являются исправлениями ошибок. В преддверии выпуска новой версии с новыми функциями выпускаются ряд предварительных версий, обозначаемых как альфа, бета или релиз-кандидат. Альфа-версии — это ранние релизы, в которых интерфейсы еще не окончательно определены; не является неожиданностью увидеть изменение интерфейса между двумя альфа-версиями. Бета-версии более стабильны, сохраняя существующие интерфейсы, но, возможно, добавляя новые модули, а релиз-кандидаты заморожены, не внося изменений, кроме необходимых для исправления критических ошибок.
Альфа, бета и релиз-кандидатные версии имеют дополнительный суффикс:
- Суффикс для альфа-версии — это «aN» для некоторого небольшого числа N.
- Суффикс для бета-версии — это «bN» для некоторого небольшого числа N.
- Суффикс для версии релиз-кандидата — это «rcN» для некоторого небольшого числа N.
Другими словами, все версии, помеченные как 2.0aN, предшествуют версиям, помеченным как 2.0bN, которые предшествуют версиям, помеченным как 2.0rcN, и те, в свою очередь, предшествуют версии 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 https://www.sphinx-doc.org/. Исходный код 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–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/faq/general.html