Общие вопросы о 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.
Дополнительные пояснения и полный текст лицензии PSF см. на странице лицензии.
Логотип Python является товарным знаком, и в некоторых случаях для его использования требуется разрешение. Дополнительную информацию см. в политике использования товарных знаков.
Почему вообще был создан Python?
Вот очень краткое изложение того, с чего всё началось, написанное Гвидо ван Россумом:
У меня был обширный опыт реализации интерпретируемого языка в группе ABC в CWI, и благодаря работе с этой группой я многое узнал о проектировании языков. Именно отсюда берут начало многие особенности Python, включая использование отступов для группировки операторов и наличие типов данных очень высокого уровня (хотя детали в Python совсем другие).
У меня было немало претензий к языку ABC, но многие его возможности мне также нравились. Расширить язык ABC (или его реализацию), чтобы устранить мои претензии, было невозможно — на самом деле отсутствие расширяемости было одной из его главных проблем. У меня был некоторый опыт работы с Modula-2+, я беседовал с разработчиками 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 — номер микро-версии; он увеличивается с каждым выпуском с исправлениями ошибок.
Не каждый выпуск содержит исправления ошибок. Перед выпуском новой версии с функциональными нововведениями выходят несколько версий для разработки, обозначаемых как alpha, beta или release candidate. Альфа-версии — ранние выпуски, в которых интерфейсы ещё не окончательно определены; между двумя альфа-версиями интерфейс может измениться. Бета-версии стабильнее: существующие интерфейсы сохраняются, но могут добавляться новые модули. В версиях-кандидатах состав функций заморожен: в них вносятся только изменения, необходимые для исправления критических ошибок.
К номерам альфа-версий, бета-версий и версий-кандидатов добавляется суффикс:
- Суффикс альфа-версии — «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, сжатый с помощью gzip, и содержит полный исходный код на 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: 2.x и 3.x. Рекомендуется версия 3.x, которую поддерживает большинство широко используемых библиотек. Хотя версия 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, содержащие краткую техническую спецификацию и обоснование. Ищите документ с названием «График выпуска 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 существуют и хорошие интегрированные среды разработки. IDLE — кроссплатформенная среда разработки для Python, написанная на Python с использованием Tkinter. Пользователи Emacs будут рады узнать, что для Emacs есть очень хороший режим Python. Все эти среды разработки предоставляют подсветку синтаксиса, автоматические отступы и доступ к интерактивному интерпретатору во время написания кода. Полный список сред для разработки на Python см. в вики Python.
Если вы хотите обсудить использование Python в образовании, возможно, вам будет интересно подписаться на список рассылки edu-sig.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/faq/general.html