Общие вопросы и ответы по 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.
- Суффикс для кандидата в релиз — «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?
Чтобы сообщить об ошибке или отправить исправление, используйте установку Roundup по адресу https://bugs.python.org/.
Для отправки отчетов об ошибках вам нужна учетная запись Roundup; это позволит нам связаться с вами, если у нас возникнут дополнительные вопросы. Это также позволит Roundup отправлять вам обновления, когда мы будем работать над вашей ошибкой. Если вы ранее использовали SourceForge для отправки отчетов об ошибках в Python, вы можете получить свой пароль Roundup через процедуру сброса пароля Roundup.
Дополнительную информацию о разработке 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?
Да, много, и их публикуют всё больше. Список книг можно найти на wiki python.org по адресу https://wiki.python.org/moin/PythonBooks.
Также можно поискать в онлайн-книжных магазинах по запросу «Python», отфильтровав ссылки на «Monty Python», или поискать «Python» и «язык».
Где в мире находится www.python.org?
Инфраструктура проекта Python расположена по всему миру и поддерживается командой Python Infrastructure Team. Подробности здесь.
Почему он называется Python?
Когда он начинал реализовывать Python, Гвидо ван Россум также читал опубликованные сценарии из “Летающего цирка Монти Пайтона”, комедийного сериала BBC 1970-х годов. Ван Россум посчитал, что ему нужен короткий, уникальный и немного загадочный name, поэтому он решил назвать язык Python.
Мне нужно любить «Летающий цирк Монти Пайтона»?
Нет, но это помогает. :)
Python в реальном мире
Насколько стабилен Python?
Очень стабилен. Новые стабильные релизы выходят примерно раз в 6–18 месяцев с 1991 года, и эта тенденция, вероятно, сохранится. По состоянию на версию 3.9, Python будет получать крупный новый релиз ежегодно (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://www.python.org/dev/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]
Благодаря интерпретатору документация всегда находится под рукой при программировании.
Для Python также есть хорошие IDE. 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.10/faq/general.html