stringtranslate.com

Python (язык программирования)

Python — это язык программирования общего назначения высокого уровня . Его философия дизайна подчеркивает читаемость кода за счет использования значительных отступов . [31]

Python является динамически типизированным и собирает мусор . Он поддерживает несколько парадигм программирования , включая структурированное (особенно процедурное ), объектно-ориентированное и функциональное программирование . Его часто называют языком «с батарейками» из-за его обширной стандартной библиотеки . [32] [33]

Гвидо ван Россум начал работать над Python в конце 1980-х годов как преемником языка программирования ABC и впервые выпустил его в 1991 году как Python 0.9.0. [34] Python 2.0 был выпущен в 2000 году. Python 3.0, выпущенный в 2008 году, представлял собой основную версию, не полностью обратно совместимую с более ранними версиями. Python 2.7.18, выпущенный в 2020 году, был последней версией Python 2. [35]

Python неизменно считается одним из самых популярных языков программирования и получил широкое распространение в сообществе машинного обучения . [36] [37] [38] [39]

История

Дизайнер Python Гвидо ван Россум на OSCON 2006.

Python был задуман в конце 1980-х годов [40] Гвидо ван Россумом из Centrum Wiskunde & Informatica (CWI) в Нидерландах как преемник языка программирования ABC , вдохновленного SETL , [41] способного обрабатывать исключения и взаимодействовать с Операционная система « Амеба » . [10] Его реализация началась в декабре 1989 года. [42] Ван Россум нёс единоличную ответственность за проект в качестве ведущего разработчика до 12 июля 2018 года, когда он объявил о своём «постоянном отпуске» от своих обязанностей « доброжелательного диктатора Python на всю жизнь». ", это звание, присвоенное ему сообществом Python, чтобы отразить его долгосрочную приверженность в качестве главного лица, принимающего решения в проекте. [43] В январе 2019 года активные разработчики ядра Python избрали Руководящий совет из пяти человек, который возглавит проект. [44] [45]

Python 2.0 был выпущен 16 октября 2000 года и содержал множество важных новых функций, таких как понимание списков , сборка мусора с обнаружением циклов , подсчет ссылок и поддержка Unicode . [46] Python 3.0, выпущенный 3 декабря 2008 года, многие из его основных функций были перенесены в Python 2.6.x [47] и 2.7.x. Релизы Python 3 включают 2to3утилиту, которая автоматизирует перевод кода Python 2 в Python 3. [48]

Окончание поддержки Python 2.7 первоначально было назначено на 2015 год, затем было перенесено на 2020 год из-за опасений, что большую часть существующего кода невозможно легко перенести на Python 3. [49] [50] Никаких дальнейших исправлений безопасности. или для него будут выпущены другие улучшения. [51] [52] В настоящее время поддерживаются только версии 3.8 и более поздние (2023 проблемы безопасности были исправлены, например, в версии 3.7.17, финальной версии 3.7.x [53] ). Хотя Python 2.7 и более ранние версии официально не поддерживаются, другая неофициальная реализация Python, PyPy , продолжает поддерживать Python 2, т.е. «2.7.18+» (плюс 3.9 и 3.10), причем плюс означает (по крайней мере некоторые) « обратно перенесенные обновления безопасности» . ". [54]

В 2021 году (и еще дважды в 2022 году) обновления безопасности были ускорены, поскольку все версии Python были небезопасными (включая 2.7 [55] ) из-за проблем с безопасностью, приводивших к возможному удаленному выполнению кода [56] и отравлению веб-кеша . [57] В 2022 году выпуск Python 3.10.4 и 3.9.12 был ускорен [58] и 3.8.13 из-за множества проблем с безопасностью. [59] Когда в мае 2022 года был выпущен Python 3.9.13, было объявлено, что серия 3.9 (присоединяющаяся к более старым сериям 3.8 и 3.7) в будущем будет получать только исправления безопасности. [60] 7 сентября 2022 года из-за потенциальной атаки типа «отказ в обслуживании» были выпущены четыре новых выпуска : 3.10.7, 3.9.14, 3.8.14 и 3.7.14. [61] [62]

По состоянию на октябрь 2023 года Python 3.12 является стабильной версией, а 3.12 и 3.11 — единственными версиями с активной (а не только поддержкой безопасности) поддержкой. Заметные изменения в версии 3.11 по сравнению с версией 3.10 включают увеличенную скорость выполнения программ и улучшенные отчеты об ошибках. [63]

Python 3.12 добавляет в язык синтаксис (и фактически каждый Python, начиная с версии 3.5, добавляет некоторый синтаксис) в язык, новое (мягкое) ключевое слово type(в последних версиях добавлено много поддержки типизации, например, новый оператор объединения типов в версии 3.10) и 3.11 для обработка исключений и 3.10 ключевые слова matchи case(мягкие) для операторов сопоставления структурных шаблонов . В Python 3.12 также исключены устаревшие модули и функциональные возможности; в будущих версиях тоже будут исключены устаревшие модули, см. ниже в разделе «Разработка».

Python 3.11 утверждает, что он на 10–60 % быстрее, чем Python 3.10, а Python 3.12 добавляет к этому еще 5 %. Также улучшены сообщения об ошибках и множество других изменений.

С 27 июня 2023 года Python 3.8 является самой старой поддерживаемой версией Python (хотя и находится на этапе «поддержки безопасности»), поскольку срок службы Python 3.7 подходит к концу . [64]

Философия дизайна и особенности

Python — это мультипарадигмальный язык программирования . Объектно-ориентированное программирование и структурное программирование полностью поддерживаются, и многие из их функций поддерживают функциональное программирование и аспектно-ориентированное программирование (включая метапрограммирование [65] и метаобъекты ). [66] Многие другие парадигмы поддерживаются посредством расширений, включая проектирование по контракту [67] [68] и логическое программирование . [69]

Python использует динамическую типизацию и комбинацию подсчета ссылок и сборщика мусора с обнаружением циклов для управления памятью . [70] Он использует динамическое разрешение имен ( позднее связывание ), которое связывает имена методов и переменных во время выполнения программы.

Его дизайн предлагает некоторую поддержку функционального программирования в традициях Lisp . Он имеет filterи mapфункции reduce; списки , словари , множества и выражения -генераторы . [71] В стандартной библиотеке есть два модуля ( itertoolsи functools), реализующие функциональные инструменты, заимствованные из Haskell и Standard ML . [72]

Его основная философия изложена в «Дзене Python» (PEP 20), который включает такие афоризмы , как: [73]

Вместо того, чтобы встраивать все свои функциональные возможности в ядро, Python был спроектирован так, чтобы его можно было легко расширять с помощью модулей. Эта компактная модульность сделала его особенно популярным как средство добавления программируемых интерфейсов к существующим приложениям. Представление Ван Россума о небольшом базовом языке с большой стандартной библиотекой и легко расширяемым интерпретатором возникло из-за его разочарования в ABC , который придерживался противоположного подхода. [40]

Python стремится к более простому и менее запутанному синтаксису и грамматике, предоставляя разработчикам возможность выбора методологии кодирования. В отличие от девиза Perl « есть более одного способа сделать это », Python придерживается философии «должен быть один — и желательно только один — очевидный способ сделать это». [73] Алекс Мартелли , научный сотрудник Python Software Foundation и автор книги о Python, написал: «Описание чего-либо как «умного» не считается комплиментом в культуре Python». [74] Одним из преимуществ этого подхода является большая согласованность в сообществах пользователей Python и общее понимание принципов кодирования.

Разработчики Python обычно стараются избегать преждевременной оптимизации и отклоняют исправления для некритических частей эталонной реализации CPython , которые могут предложить незначительное увеличение скорости за счет ясности. [75] Скорость выполнения можно повысить, переместив критичные к скорости функции в модули расширения, написанные на таких языках, как C, или используя JIT-компилятор, такой как PyPy . Также возможна кросс-компиляция на другие языки, но она либо не обеспечивает полного ускорения, которого можно было бы ожидать, поскольку Python — очень динамичный язык, либо компилируется ограниченное подмножество Python, и, возможно, семантика немного изменился. [76] Разработчики Python стремятся сделать его интересным в использовании. Это отражено в его названии — дань уважения британской комедийной группе « Монти Пайтон» [77] — и в иногда игривых подходах к обучающим материалам и справочным материалам, таких как использование терминов «спам» и «яйца» (отсылка к Скетч Монти Пайтона ) в примерах вместо часто используемых «foo» и «bar» . [78] [79]

Распространенным неологизмом в сообществе Python является pythonic , который имеет широкий спектр значений, связанных со стилем программы. «Pythonic» код может хорошо использовать идиомы Python , быть естественным, демонстрировать свободное владение языком или соответствовать минималистской философии Python и упору на читабельность. Код, который трудно понять или который читается как грубая транскрипция с другого языка программирования, называется unpythonic . [80] [81]

Синтаксис и семантика

Python задуман как легко читаемый язык. Его форматирование визуально лаконично и часто использует ключевые слова на английском языке, тогда как в других языках используется пунктуация. В отличие от многих других языков, в нем не используются фигурные скобки для разделения блоков, а точки с запятой после операторов разрешены, но используются редко. Он имеет меньше синтаксических исключений и особых случаев, чем C или Pascal . [82]

Отступ

Для разделения блоков в Python используются пробельные отступы, а не фигурные скобки или ключевые слова . Увеличение отступа происходит после определенных утверждений; уменьшение отступа означает конец текущего блока. [83] Таким образом, визуальная структура программы точно отражает ее семантическую структуру. [84] Эту особенность иногда называют правилом «вне игры» . Некоторые другие языки используют отступы таким образом; но в большинстве случаев отступы не имеют семантического значения. Рекомендуемый размер отступа — четыре пробела. [85]

Операторы и поток управления

Заявления Python включают в себя:

Оператор присваивания ( =) связывает имя как ссылку с отдельным динамически выделяемым объектом . Переменные впоследствии могут быть повторно привязаны в любое время к любому объекту. В Python имя переменной представляет собой общий держатель ссылки без фиксированного типа данных ; однако он всегда ссылается на какой-либо объект определенного типа. Это называется динамической типизацией — в отличие от статически типизированных языков, где каждая переменная может содержать только значение определенного типа.

Python не поддерживает оптимизацию хвостовых вызовов или первоклассные продолжения и, по словам Ван Россума, никогда не будет. [88] [89] Однако лучшая поддержка функций, подобных сопрограммам , обеспечивается за счет расширения генераторов Python . [90] До версии 2.5 генераторы представляли собой ленивые итераторы ; данные передавались из генератора в одностороннем порядке. Начиная с Python 2.5, можно передавать данные обратно в функцию-генератор; а начиная с версии 3.3 его можно передавать через несколько уровней стека. [91]

Выражения

Выражения Python включают в себя:

В Python различие между выражениями и операторами жестко соблюдается, в отличие от таких языков, как Common Lisp , Scheme или Ruby . Это приводит к дублированию некоторых функций. Например:

Операторы не могут быть частью выражения, поэтому списки и другие выражения или лямбда-выражения , которые являются выражениями, не могут содержать операторы. Особым случаем является то, что оператор присваивания, например, не может составлять часть условного выражения условного оператора. Это дает то преимущество, что позволяет избежать классической ошибки C, связанной с принятием оператора присваивания за оператор равенства в условии: является синтаксически допустимым (но, вероятно, непреднамеренным) кодом C, но вызывает синтаксическую ошибку в Python.a = 1===if (c = 1) { ... }if c = 1: ...

Методы

Методы объектов — это функции , прикрепленные к классу объекта; синтаксис для обычных методов и функций является синтаксическим сахаром для . Методы Python имеют явный параметр для доступа к данным экземпляра , в отличие от неявного self (или ) в некоторых других объектно-ориентированных языках программирования (например, C++ , Java, Objective-C , Ruby ). [100] Python также предоставляет методы, часто называемые методами dunder (из-за того, что их имена начинаются и заканчиваются двойными подчеркиваниями), позволяющие определяемым пользователем классам изменять способ их обработки собственными операциями, включая длину, сравнение, арифметические операции и преобразование типов. [101]instance.method(argument)Class.method(instance, argument)selfthis

Ввод текста

Стандартная иерархия типов в Python 3

Python использует утиную типизацию и имеет типизированные объекты, но нетипизированные имена переменных. Ограничения типа не проверяются во время компиляции ; скорее, операции над объектом могут завершиться неудачно, что означает, что он не относится к подходящему типу. Несмотря на динамическую типизацию , Python является строго типизированным , запрещая операции, которые не определены четко (например, добавление числа к строке), вместо того, чтобы молча пытаться разобраться в них.

Python позволяет программистам определять свои собственные типы с помощью классов , чаще всего используемых для объектно-ориентированного программирования . Новые экземпляры классов создаются путем вызова класса (например, или ), и классы являются экземплярами метакласса ( который сам по себе является экземпляром), что позволяет метапрограммировать и отражать .SpamClass()EggsClass() type

До версии 3.0 в Python было два типа классов (оба использовали один и тот же синтаксис): старый стиль и новый стиль . [102] текущие версии Python поддерживают только семантику нового стиля.

Python поддерживает необязательные аннотации типов . [4] [103] Эти аннотации не поддерживаются языком, но могут использоваться внешними инструментами, такими как mypy, для обнаружения ошибок. [104] [105] Mypy также поддерживает компилятор Python под названием mypyc, который использует аннотации типов для оптимизации. [106]

Арифметические операции

В Python есть обычные символы для арифметических операторов ( +, -, *, /), оператора деления //и операции по модулю % (где остаток может быть отрицательным, например 4 % -3 == -2). Он также имеет возведение **в степень , например 5**3 == 125и 9**0.5 == 3.0, и оператор умножения матрицы @. [110] Эти операторы работают так же, как и в традиционной математике; с теми же правилами приоритета операторы инфиксируют ( +и -также могут быть унарными для представления положительных и отрицательных чисел соответственно).

Деление целых чисел дает результаты с плавающей запятой. Поведение деления со временем существенно изменилось: [111]

В терминах Python /это истинное деление (или просто деление ) и //деление по этажам. /до версии 3.0 это классическое деление . [111]

Округление в сторону отрицательной бесконечности, хотя и отличается от большинства языков, добавляет последовательности. Например, это означает, что уравнение всегда верно. Это также означает, что уравнение справедливо как для положительных, так и для отрицательных значений . Однако сохранение справедливости этого уравнения означает, что, хотя результат , как и ожидалось, находится в полуоткрытом интервале [0, b ), где – положительное целое число, он должен лежать в интервале ( b , 0), когда отрицательно [112](a + b)//b == a//b + 1b*(a//b) + a%b == aaa%bbb

Python предоставляет roundфункцию округления числа с плавающей запятой до ближайшего целого числа. Для решения тай-брейка Python 3 использует округление до четности : round(1.5)и round(2.5)оба создают 2. [113] В версиях до 3 использовалось округление от нуля : round(0.5)is 1.0, round(-0.5)is −1.0. [114]

Python допускает логические выражения с множественными отношениями равенства таким образом, который соответствует общему использованию в математике. Например, выражение a < b < cпроверяет, aменьше ли bи bменьше ли c. [115] Языки, производные от C, интерпретируют это выражение по-разному: в C выражение сначала оценивает a < b, что приводит к 0 или 1, а затем этот результат сравнивается с c. [116]

Python использует арифметику произвольной точности для всех целочисленных операций. Тип Decimal/класс в decimalмодуле предоставляет десятичные числа с плавающей запятой с заранее определенной произвольной точностью и несколькими режимами округления. [117] Класс Fractionв fractionsмодуле обеспечивает произвольную точность для рациональных чисел . [118]

Благодаря обширной математической библиотеке Python и сторонней библиотеке NumPy , которая еще больше расширяет встроенные возможности, он часто используется в качестве научного языка сценариев для решения таких задач, как обработка и манипулирование числовыми данными. [119] [120]

Примеры программирования

Программа «Привет, мир» :

print ( «Привет, мир!» )

Программа для вычисления факториала целого положительного числа:

n  =  int ( input ( 'Введите число, и будет напечатан его факториал:' ))если  n  <  0 : поднять  ValueError ( 'Вы должны ввести неотрицательное целое число' )факториал  =  1для  i  в  диапазоне ( 2 ,  n  +  1 ): факториал  *=  яраспечатать ( факториал )

Библиотеки

Большая стандартная библиотека Python [121] предоставляет инструменты, подходящие для многих задач, и ее обычно называют одной из ее самых сильных сторон. Для интернет-приложений поддерживаются многие стандартные форматы и протоколы, такие как MIME и HTTP . Он включает в себя модули для создания графических пользовательских интерфейсов , подключения к реляционным базам данных , генерации псевдослучайных чисел , арифметики с десятичными дробями произвольной точности, [117] манипулирования регулярными выражениями и модульного тестирования .

Некоторые части стандартной библиотеки покрываются спецификациями (например, реализация интерфейса веб-сервера шлюза (WSGI) wsgirefсоответствует PEP 333 [122]) , но большинство из них определяется их кодом, внутренней документацией и наборами тестов . Однако, поскольку большая часть стандартной библиотеки представляет собой кроссплатформенный код Python, лишь несколько модулей нуждаются в изменении или переписывании для различных реализаций.

По состоянию на 14 ноября 2022 года Индекс пакетов Python (PyPI), официальный репозиторий стороннего программного обеспечения Python, содержит более 415 000 [123] пакетов с широким спектром функций, в том числе:

Среды разработки

Большинство реализаций Python (включая CPython) включают цикл чтения-оценки-печати (REPL), позволяющий им работать как интерпретатор командной строки, для которого пользователи вводят инструкции последовательно и немедленно получают результаты.

Python также поставляется с интегрированной средой разработки (IDE) под названием IDLE , которая больше ориентирована на новичков.

Другие оболочки, включая IDLE и IPython , добавляют дополнительные возможности, такие как улучшенное автозаполнение, сохранение состояния сеанса и подсветку синтаксиса .

Помимо стандартных настольных интегрированных сред разработки, включая PyCharm, IntelliJ Idea, Visual Studio Code и т. д., существуют IDE на базе веб-браузера , включая SageMath , для разработки программ, связанных с наукой и математикой; PythonAnywhere — браузерная IDE и среда хостинга; и Canopy IDE, коммерческая IDE, ориентированная на научные вычисления . [124]

Реализации

Эталонная реализация

CPythonэталонная реализация Python. Он написан на C и соответствует стандарту C89 (Python 3.11 использует C11 [125] ) с несколькими избранными функциями C99 . CPython включает в себя собственные расширения C, но расширения сторонних производителей не ограничиваются более старыми версиями C — например, они могут быть реализованы с помощью C11 или C++. [126] [127] ) Он компилирует программы Python в промежуточный байт-код [128] , который затем выполняется его виртуальной машиной . [129] CPython распространяется с большой стандартной библиотекой, написанной на смеси C и собственного Python, и доступен для многих платформ, включая Windows (начиная с Python 3.9, установщик Python намеренно не устанавливается в Windows 7 и 8; [ 130] [131] Windows XP поддерживалась до версии Python 3.5) и большинство современных Unix-подобных систем, включая macOS (и Apple M1 Mac, начиная с Python 3.9.1, с экспериментальным установщиком) и неофициальную поддержку, например, VMS . [132] Переносимость платформы была одним из первых приоритетов компании. [133] (Во время разработки Python 1 и 2 поддерживались даже OS/2 и Solaris , [134] но с тех пор поддержка для многих платформ была прекращена.)

Другие реализации

Неподдерживаемые реализации

Другие JIT-компиляторы Python были разработаны, но сейчас не поддерживаются:

Кросс-компиляторы на другие языки

Существует несколько компиляторов/ транспиляторов объектных языков высокого уровня, в которых в качестве исходного языка используется неограниченный Python, ограниченное подмножество Python или язык, аналогичный Python:

Специализированные:

Старые проекты (или не используемые с Python 3.x и новейшим синтаксисом):

Производительность

Сравнение производительности различных реализаций Python при нечисловой (комбинаторной) рабочей нагрузке было представлено на выставке EuroSciPy '13. [162] Производительность Python по сравнению с другими языками программирования также оценивается с помощью игры The Computer Language Benchmarks Game . [163]

Разработка

Разработка Python ведется в основном посредством процесса предложения по улучшению Python (PEP), основного механизма предложения основных новых функций, сбора мнений сообщества по проблемам и документирования решений по проектированию Python. [164] Стиль кодирования Python описан в PEP 8. [165] Выдающиеся PEP проверяются и комментируются сообществом Python и руководящим советом. [164]

Улучшение языка соответствует разработке эталонной реализации CPython. Список рассылки python-dev является основным форумом для разработки языка. Конкретные проблемы изначально обсуждались в системе отслеживания ошибок Roundup , размещенной на сайте фонда. [166] В 2022 году все вопросы и обсуждения были перенесены на GitHub . [167] Первоначально разработка велась в автономном репозитории исходного кода под управлением Mercurial , пока Python не переехал на GitHub в январе 2017 года. [168]

Публичные выпуски CPython делятся на три типа, различающиеся тем, какая часть номера версии увеличивается:

Многие альфа-, бета-версии и кандидаты на выпуск также выпускаются в качестве предварительных версий и для тестирования перед финальными выпусками. Хотя для каждого выпуска существует приблизительный график, они часто откладываются, если код не готов. Команда разработчиков Python отслеживает состояние кода, запуская большой набор модульных тестов во время разработки. [174]

Крупнейшая научная конференция по Python — PyCon . Также существуют специальные программы наставничества по Python, например PyLadies .

Из Python 3.12 удалено, wstrчто означает, что расширения Python [175] необходимо изменить, [176] и в версии 3.10 в язык добавлено сопоставление с образцом . [177]

В Python 3.12 исключены некоторые устаревшие модули, а в будущем будут удалены и другие; они устарели с версии 3.13; уже устаревший код формата массива 'u' будет выдаваться DeprecationWarningначиная с версии 3.13 и будет удален в Python 3.16. Вместо этого следует использовать код формата «w». Часть ctypes также устарела и http.server.CGIHTTPRequestHandlerбудет выдавать предупреждение об устаревании и будет удалена в версии 3.15. Использование этого кода уже сопряжено с высоким потенциалом ошибок как в безопасности, так и в функциональности. Некоторые части модуля типизации устарели, например, создание typing.NamedTupleкласса с использованием аргументов ключевого слова для обозначения полей, и подобное (и многое другое) будет запрещено в Python 3.15.

Генераторы документации API

Инструменты, которые могут генерировать документацию для API Python, включают pydoc (доступен как часть стандартной библиотеки), Sphinx , Pdoc и его ответвления, Doxygen и Graphviz , среди других. [178]

Именование

Название Python происходит от имени британской комедийной группы Monty Python , которой пользовался создатель Python Гвидо ван Россум во время разработки языка. Ссылки на Монти Пайтон часто появляются в коде и культуре Python; [179] например, метасинтаксические переменные, часто используемые в литературе по Python, — это спам и яйца вместо традиционных foo и bar . [179] [180] Официальная документация Python также содержит различные ссылки на подпрограммы Монти Пайтона. [181] [182] Пользователей Python иногда называют «питонистами». [183]

Префикс Py- используется, чтобы показать, что что-то связано с Python. Примеры использования этого префикса в именах приложений или библиотек Python включают Pygameпривязку SDL к Python (обычно используемую для создания игр); PyQt и PyGTK , которые связывают Qt и GTK с Python соответственно; и PyPy — реализация Python, изначально написанная на Python.

Популярность

С 2003 года Python стабильно входит в десятку самых популярных языков программирования в индексе сообщества программистов TIOBE, где по состоянию на декабрь 2022 года он был самым популярным языком (опередив C, C++ и Java ). [38] Он был выбран языком программирования года (за «самый высокий рост рейтингов за год») в 2007, 2010, 2018 и 2020 годах (единственный язык, который сделал это четыре раза по состоянию на 2020 год [184] ). .

Эмпирическое исследование показало, что языки сценариев, такие как Python, более продуктивны, чем обычные языки, такие как C и Java, для решения задач программирования, связанных с манипулированием строками и поиском в словаре, и определили, что потребление памяти часто «лучше, чем у Java, а не меньше». намного хуже, чем C или C++». [185]

В число крупных организаций, использующих Python, входят Wikipedia , Google , [186] Yahoo! , [187] CERN , [188] NASA , [189] Facebook , [190] Amazon , Instagram , [191] Spotify , [192] и некоторые более мелкие организации, такие как ILM [193] и ITA . [194] Социальная новостная сеть Reddit была написана в основном на Python. [195]

Использование

Работает на Python

Python может служить языком сценариев для веб-приложений , например, через mod_wsgi для веб-сервера Apache . [196] С интерфейсом шлюза веб-сервера стандартный API был разработан для облегчения работы этих приложений. Веб-фреймворки, такие как Django , Pylons , Pyramid , TurboGears , web2py , Tornado , Flask , Bottle и Zope , помогают разработчикам разрабатывать и поддерживать сложные приложения. Pyjs и IronPython можно использовать для разработки клиентских приложений на основе Ajax. SQLAlchemy можно использовать в качестве преобразователя данных в реляционную базу данных. Twisted — это платформа для программирования связи между компьютерами, которая используется (например) Dropbox .

Такие библиотеки, как NumPy , SciPy и Matplotlib , позволяют эффективно использовать Python в научных вычислениях, [197] [198] со специализированными библиотеками, такими как Biopython и Astropy , обеспечивающими функциональные возможности, специфичные для предметной области. SageMathсистема компьютерной алгебры с интерфейсом ноутбука , программируемым на Python: ее библиотека охватывает многие аспекты математики , включая алгебру , комбинаторику , числовую математику , теорию чисел и исчисление . [199] OpenCV имеет привязки Python с богатым набором функций для компьютерного зрения и обработки изображений . [200]

Python обычно используется в проектах искусственного интеллекта и проектах машинного обучения с помощью таких библиотек, как TensorFlow , Keras , Pytorch и scikit-learn . [201] [202] [203] [204] Python как язык сценариев с модульной архитектурой , простым синтаксисом и богатыми инструментами обработки текста часто используется для обработки естественного языка . [205]

Python также можно использовать для графического пользовательского интерфейса (GUI) с помощью таких библиотек, как Tkinter . [206] [207]

Python также можно использовать для создания игр с помощью таких библиотек, как Pygame , которые могут создавать 2D-игры.

Python успешно встроен во многие программные продукты в качестве языка сценариев, в том числе в программное обеспечение для метода конечных элементов , такое как Abaqus , средства параметрического 3D-моделирования, такие как FreeCAD , пакеты 3D-анимации, такие как 3ds Max , Blender , Cinema 4D , Lightwave , Houdini , Maya , modo . , MotionBuilder , Softimage , наборщик визуальных эффектов Nuke , программы 2D-изображений, такие как GIMP , [208] Inkscape , Scribus и Paint Shop Pro , [209] и программы нотной записи , такие как Scorewriter и Capella . GNU Debugger использует Python как красивый принтер для отображения сложных структур, таких как контейнеры C++. Esri пропагандирует Python как лучший выбор для написания скриптов в ArcGIS . [210] Он также использовался в нескольких видеоиграх, [211] [212] и был принят в качестве первого из трех доступных языков программирования в Google App Engine , два других — Java и Go . [213]

Многие операционные системы включают Python в качестве стандартного компонента. Он поставляется с большинством дистрибутивов Linux , [214] AmigaOS 4 (с использованием Python 2.7), FreeBSD (в виде пакета), NetBSD и OpenBSD (в виде пакета) и может использоваться из командной строки (терминала). Многие дистрибутивы Linux используют установщики, написанные на Python: Ubuntu использует установщик Ubiquity , а Red Hat Linux и Fedora Linux используют установщик Anaconda . Gentoo Linux использует Python в своей системе управления пакетами Portage .

Python широко используется в индустрии информационной безопасности , в том числе при разработке эксплойтов. [215] [216]

Большая часть программного обеспечения Sugar для «Один ноутбук на ребенка XO», разработанного в Sugar Labs в 2008 году , написано на Python. [217] В проекте одноплатного компьютера Raspberry Pi Python был принят в качестве основного языка пользовательского программирования.

LibreOffice включает Python и намерен заменить Java на Python. Его поставщик сценариев Python является основной функцией [218] начиная с версии 4.0 от 7 февраля 2013 года.

Языки под влиянием Python

Дизайн и философия Python повлияли на многие другие языки программирования:

Практика разработки Python также была эмулирована другими языками. Например, практика требования документа, описывающего обоснование и проблемы, связанные с изменением языка (в Python, PEP), также используется в Tcl , [230] Erlang , [231] и Swift. [232]

Смотрите также

Рекомендации

  1. ^ «Общие часто задаваемые вопросы по Python — документация по Python 3.9.2» . docs.python.org . Архивировано из оригинала 24 октября 2012 года . Проверено 28 марта 2021 г.
  2. ^ «Python 0.9.1, часть 21 января» . Архивы alt.sources. Архивировано из оригинала 11 августа 2021 года . Проверено 11 августа 2021 г.
  3. ^ «Почему Python является динамическим языком, а также строго типизированным языком» . Питон Вики . Архивировано из оригинала 14 марта 2021 года . Проверено 27 января 2021 г.
  4. ^ ab «PEP 483 - Теория подсказок типов». Python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 14 июня 2018 г.
  5. ^ «тест — пакет регрессионных тестов для Python — документация Python 3.7.13» . docs.python.org . Архивировано из оригинала 17 мая 2022 года . Проверено 17 мая 2022 г.
  6. ^ «Платформа - Доступ к идентификационным данным базовой платформы - Документация Python 3.10.4» . docs.python.org . Архивировано из оригинала 17 мая 2022 года . Проверено 17 мая 2022 г.
  7. ^ «Загрузить Python для других платформ». Python.org . Проверено 18 августа 2023 г.
  8. Холт, Мур (30 марта 2014 г.). «PEP 0441 – Улучшение поддержки приложений Python ZIP». Архивировано из оригинала 26 декабря 2018 года . Проверено 12 ноября 2015 г.
  9. ^ "Язык звездных жаворонков" . Архивировано из оригинала 15 июня 2020 года . Проверено 25 мая 2019 г.
  10. ^ ab «Почему вообще был создан Python?». Общие часто задаваемые вопросы по Python . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 22 марта 2007 г. У меня был большой опыт реализации интерпретируемого языка в группе ABC в CWI, и, работая с этой группой, я многому научился в области языкового проектирования. Это источник многих функций Python, включая использование отступов для группировки операторов и включение типов данных очень высокого уровня (хотя в Python все детали разные).
  11. ^ «Справочное руководство по Ada 83 (оператор повышения)» . Архивировано из оригинала 22 октября 2019 года . Проверено 7 января 2020 г.
  12. ^ аб Кучлинг, Эндрю М. (22 декабря 2006 г.). «Интервью с Гвидо ван Россумом (июль 1998 г.)». amk.ca. _ Архивировано из оригинала 1 мая 2007 года . Проверено 12 марта 2012 г. Я провел лето в Центре системных исследований DEC, где я познакомился с Модулой-2+; Примерно в то же время там писался итоговый отчет «Модулы-3». То, что я узнал там позже, проявилось в обработке исключений Python, модулях и том факте, что методы явно содержат «self» в своем списке параметров. Нарезка строк пришла из Algol-68 и Icon.
  13. ^ abc «itertools — Функции, создающие итераторы для эффективного циклирования — Документация Python 3.7.1». docs.python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 22 ноября 2016 г. Этот модуль реализует ряд строительных блоков итераторов, вдохновленных конструкциями из APL, Haskell и SML.
  14. ^ ван Россум, Гвидо (1993). «Введение в Python для программистов UNIX/C». Материалы конференции NLUUG Najaarsconferentie (Голландская группа пользователей UNIX) . CiteSeerX 10.1.1.38.2023 . хотя конструкция C далека от идеала, его влияние на Python значительно. 
  15. ^ аб «Классы». Учебник по Python . Фонд программного обеспечения Python. Архивировано из оригинала 23 октября 2012 года . Проверено 20 февраля 2012 г. Это смесь механизмов классов, имеющихся в C++ и Modula-3.
  16. ^ Лунд, Фредрик. «Вызов по объекту». effbot.org . Архивировано из оригинала 23 ноября 2019 года . Проверено 21 ноября 2017 г. замените «CLU» на «Python», «запись» на «экземпляр» и «процедуру» на «функцию или метод», и вы получите довольно точное описание объектной модели Python.
  17. ^ Симионато, Микеле. «Порядок разрешения методов Python 2.3». Фонд программного обеспечения Python. Архивировано из оригинала 20 августа 2020 года . Проверено 29 июля 2014 г. Сам метод C3 не имеет ничего общего с Python, так как его придумали люди, работавшие над Диланом, и он описан в статье, предназначенной для шепелявителей.
  18. ^ Кучлинг, AM «HOWTO по функциональному программированию». Документация Python v2.7.2 . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 9 февраля 2012 года . Понимание списков и выражения-генераторы [...] представляют собой краткое обозначение таких операций, заимствованное из функционального языка программирования Haskell.
  19. ^ Шеменауэр, Нил; Питерс, Тим; Хетланд, Магнус Ли (18 мая 2001 г.). «PEP 255 – Простые генераторы». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 9 февраля 2012 года .
  20. ^ «Дополнительные инструменты потока управления» . Документация Python 3 . Фонд программного обеспечения Python. Архивировано из оригинала 4 июня 2016 года . Проверено 24 июля 2015 г. По многочисленным просьбам в Python были добавлены несколько функций, обычно встречающихся в языках функционального программирования, таких как Lisp. С помощью ключевого слова лямбда можно создавать небольшие анонимные функции.
  21. ^ «re – Операции с регулярными выражениями – Документация Python 3.10.6» . docs.python.org . Архивировано из оригинала 18 июля 2018 года . Проверено 6 сентября 2022 г. Этот модуль предоставляет операции сопоставления регулярных выражений, аналогичные тем, которые есть в Perl.
  22. ^ "КофеСкрипт". Coffeescript.org . Архивировано из оригинала 12 июня 2020 года . Проверено 3 июля 2018 г.
  23. ^ "Учебник по языку программирования Genie" . Архивировано из оригинала 1 июня 2020 года . Проверено 28 февраля 2020 г. .
  24. ^ «Влияние Perl и Python на JavaScript». www.2ality.com . 24 февраля 2013 г. Архивировано из оригинала 26 декабря 2018 г. Проверено 15 мая 2015 г.
  25. ^ Раушмайер, Аксель. «Глава 3: Природа JavaScript; влияние». О’Рейли, «Говорим на JavaScript» . Архивировано из оригинала 26 декабря 2018 года . Проверено 15 мая 2015 г.
  26. ^ ab «Почему мы создали Джулию». Сайт Юлии . Февраль 2012 г. Архивировано из оригинала 2 мая 2020 г. . Проверено 5 июня 2014 г. Нам нужно что-то столь же пригодное для общего программирования, как Python [...]
  27. ↑ Аб Крил, Пол (4 мая 2023 г.). «Язык Mojo объединяет Python и MLIR для разработки искусственного интеллекта». Инфомир . Архивировано из оригинала 5 мая 2023 года . Проверено 5 мая 2023 г.
  28. Ring Team (4 декабря 2017 г.). «Кольцо и другие языки». Ring-lang.net . кольцевой язык. Архивировано из оригинала 25 декабря 2018 года . Проверено 4 декабря 2017 г.
  29. ^ Бини, Ола (2007). Практические проекты JRuby on Rails Web 2.0: перенос Ruby on Rails на платформу Java . Беркли: APress. п. 3. ISBN 978-1-59059-881-8.
  30. Латтнер, Крис (3 июня 2014 г.). «Домашняя страница Криса Лэттнера». Крис Лэттнер. Архивировано из оригинала 25 декабря 2018 года . Проверено 3 июня 2014 г. Язык Swift — это продукт неустанных усилий команды языковых экспертов, гуру документации, ниндзя по оптимизации компиляторов и невероятно важной внутренней экспериментальной группы, которая предоставляла отзывы, помогающие совершенствовать и проверять идеи. Конечно, он также получил большую пользу от опыта, с трудом полученного многими другими языками в этой области, черпая идеи из Objective-C, Rust, Haskell, Ruby, Python, C#, CLU и многих других, чтобы их перечислять.
  31. ^ Кульман, Дэйв. «Книга Python: Начало Python, продвинутый уровень Python и упражнения по Python». Раздел 1.1. Архивировано из оригинала (PDF) 23 июня 2012 года.
  32. ^ «О Питоне». Фонд программного обеспечения Python. Архивировано из оригинала 20 апреля 2012 года . Проверено 24 апреля 2012 г., второй раздел «Поклонники Python используют фразу «батарейки в комплекте» для описания стандартной библиотеки, которая охватывает все: от асинхронной обработки до zip-файлов».
  33. ^ «PEP 206 - Расширенная библиотека Python» . Python.org . Архивировано из оригинала 5 мая 2021 года . Проверено 11 октября 2021 г.
  34. Россум, Гвидо Ван (20 января 2009 г.). «История Python: краткая хронология Python». История Питона . Архивировано из оригинала 5 июня 2020 года . Проверено 5 марта 2021 г.
  35. Петерсон, Бенджамин (20 апреля 2020 г.). «Python Insider: Python 2.7.18, последняя версия Python 2». Инсайдер Python . Архивировано из оригинала 26 апреля 2020 года . Проверено 27 апреля 2020 г.
  36. ^ «Опрос разработчиков Stack Overflow, 2022 г.» . Переполнение стека . Архивировано из оригинала 27 июня 2022 года . Проверено 12 августа 2022 г.
  37. ^ «Состояние экосистемы разработчиков в инфографике 2020 года» . JetBrains: инструменты разработчика для профессионалов и команд . Архивировано из оригинала 1 марта 2021 года . Проверено 5 марта 2021 г.
  38. ^ ab «Индекс TIOBE». ТИОБЕ. Архивировано из оригинала 25 февраля 2018 года . Проверено 3 января 2023 г. Индекс TIOBE Programming Community — показатель популярности языков программирования.Обновляется по мере необходимости.
  39. ^ «Индекс популярности языка программирования PYPL» . pypl.github.io . Архивировано из оригинала 14 марта 2017 года . Проверено 26 марта 2021 г.
  40. ^ аб Веннерс, Билл (13 января 2003 г.). «Создание Python». Разработчик Артима . Артима. Архивировано из оригинала 1 сентября 2016 года . Проверено 22 марта 2007 г.
  41. ^ ван Россум, Гвидо (29 августа 2000 г.). «SETL (было: вялое отношение к литералам диапазона)». Python-Dev (список рассылки). Архивировано из оригинала 14 июля 2018 года . Проверено 13 марта 2011 г.
  42. ^ ван Россум, Гвидо (20 января 2009 г.). «Краткая хронология Python». История Питона . Архивировано из оригинала 5 июня 2020 года . Проверено 20 января 2009 г.
  43. Фэйрчайлд, Карли (12 июля 2018 г.). «Гвидо ван Россум уходит с роли пожизненного великодушного диктатора Питона». Linux-журнал . Архивировано из оригинала 13 июля 2018 года . Проверено 13 июля 2018 г.
  44. ^ "ПЭП 8100" . Фонд программного обеспечения Python. Архивировано из оригинала 4 июня 2020 года . Проверено 4 мая 2019 г.
  45. ^ «PEP 13 - Управление языком Python» . Python.org . Архивировано из оригинала 27 мая 2021 года . Проверено 25 августа 2021 г.
  46. ^ Кучлинг, AM; Задка, Моше (16 октября 2000 г.). «Что нового в Python 2.0». Фонд программного обеспечения Python. Архивировано из оригинала 23 октября 2012 года . Проверено 11 февраля 2012 г.
  47. ^ ван Россум, Гвидо (5 апреля 2006 г.). «PEP 3000 – Python 3000». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 3 марта 2016 года . Проверено 27 июня 2009 г.
  48. ^ «2to3 - Автоматический перевод кода Python 2–3» . docs.python.org . Архивировано из оригинала 4 июня 2020 года . Проверено 2 февраля 2021 г.
  49. ^ «PEP 373 - График выпуска Python 2.7» . python.org . Архивировано из оригинала 19 мая 2020 года . Проверено 9 января 2017 г.
  50. ^ «PEP 466 - Улучшения сетевой безопасности для Python 2.7.x» . python.org . Архивировано из оригинала 4 июня 2020 года . Проверено 9 января 2017 г.
  51. ^ "Закат Python 2" . Python.org . Архивировано из оригинала 12 января 2020 года . Проверено 22 сентября 2019 г.
  52. ^ «PEP 373 - График выпуска Python 2.7» . Python.org . Архивировано из оригинала 13 января 2020 года . Проверено 22 сентября 2019 г.
  53. ^ «Выпуск Python 3.7.17» . Python.org . Проверено 18 августа 2023 г.
  54. Маттип (25 декабря 2023 г.). «Выпуск PyPy v7.3.14». ПиПи . Проверено 5 января 2024 г.
  55. ^ «Портал клиентов Red Hat – доступ к круглосуточной поддержке и знаниям» . access.redhat.com . Архивировано из оригинала 6 марта 2021 года . Проверено 26 февраля 2021 г.
  56. ^ «CVE – CVE-2021-3177» . cve.mitre.org . Архивировано из оригинала 27 февраля 2021 года . Проверено 26 февраля 2021 г.
  57. ^ «CVE – CVE-2021-23336» . cve.mitre.org . Архивировано из оригинала 24 февраля 2021 года . Проверено 26 февраля 2021 г.
  58. Ланга, Лукаш (24 марта 2022 г.). «Python Insider: Python 3.10.4 и 3.9.12 теперь доступны вне графика». Инсайдер Python . Архивировано из оригинала 21 апреля 2022 года . Проверено 19 апреля 2022 г.
  59. Ланга, Лукаш (16 марта 2022 г.). «Python Insider: Python 3.10.3, 3.9.11, 3.8.13 и 3.7.13 теперь доступны с контентом безопасности». Инсайдер Python . Архивировано из оригинала 17 апреля 2022 года . Проверено 19 апреля 2022 г.
  60. Ланга, Лукаш (17 мая 2022 г.). «Python Insider: Python 3.9.13 теперь доступен». Инсайдер Python . Архивировано из оригинала 17 мая 2022 года . Проверено 21 мая 2022 г.
  61. ^ «Python Insider: версии Python 3.10.7, 3.9.14, 3.8.14 и 3.7.14 теперь доступны» . pythoninsider.blogspot.com . 7 сентября 2022 года. Архивировано из оригинала 13 сентября 2022 года . Проверено 16 сентября 2022 г.
  62. ^ «CVE — CVE-2020-10735» . cve.mitre.org . Архивировано из оригинала 20 сентября 2022 года . Проверено 16 сентября 2022 г.
  63. ^ корбет (24 октября 2022 г.). «Выпущен Python 3.11 [LWN.net]». lwn.net . Проверено 15 ноября 2022 г.
  64. ^ «Питон». конецжизни.дата . 10 августа 2023 г. Проверено 15 августа 2023 г.
  65. ^ The Cain Gang Ltd. «Метаклассы Python: кто? Почему? Когда?» (PDF) . Архивировано из оригинала (PDF) 30 мая 2009 года . Проверено 27 июня 2009 г.
  66. ^ «3.3. Специальные имена методов». Справочник по языку Python . Фонд программного обеспечения Python. Архивировано из оригинала 15 декабря 2018 года . Проверено 27 июня 2009 г.
  67. ^ «PyDBC: предварительные условия метода, постусловия метода и инварианты классов для Python». Архивировано из оригинала 23 ноября 2019 года . Проверено 24 сентября 2011 г.
  68. ^ «Контракты для Python». Архивировано из оригинала 15 июня 2020 года . Проверено 24 сентября 2011 г.
  69. ^ "PyDatalog". Архивировано из оригинала 13 июня 2020 года . Проверено 22 июля 2012 г.
  70. ^ «Расширение и внедрение интерпретатора Python: подсчет ссылок». Документы.python.org. Архивировано из оригинала 18 октября 2012 года . Проверено 5 июня 2020 г. Поскольку Python интенсивно использует и , ему нужна стратегия, позволяющая избежать утечек памяти, а также использования освобожденной памяти. Выбранный метод называется подсчетом ссылок .malloc()free()
  71. ^ аб Хеттингер, Раймонд (30 января 2002 г.). «PEP 289 – Выражения генератора». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 14 июня 2020 года . Проверено 19 февраля 2012 г.
  72. ^ «6.5 itertools — Функции, создающие итераторы для эффективного цикла» . Документы.python.org. Архивировано из оригинала 14 июня 2020 года . Проверено 22 ноября 2016 г.
  73. ^ Аб Питерс, Тим (19 августа 2004 г.). «PEP 20 – Дзен Python». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 26 декабря 2018 года . Проверено 24 ноября 2008 г.
  74. ^ Мартелли, Алекс; Рэйвенскрофт, Анна; Ашер, Дэвид (2005). Поваренная книга Python, 2-е издание. О'Рейли Медиа . п. 230. ИСБН 978-0-596-00797-3. Архивировано из оригинала 23 февраля 2020 года . Проверено 14 ноября 2015 г.
  75. ^ «Культура Питонов». ебеб . 21 января 2014 г. Архивировано из оригинала 30 января 2014 г.
  76. ^ ab «Транспиляция Python в Julia с использованием PyJL» (PDF) . После ручной модификации одной строки кода путем указания необходимой информации о типе мы получили ускорение в 52,6 раза, в результате чего переведенный код Julia стал в 19,5 раза быстрее, чем исходный код Python.
  77. ^ «Почему его называют Python?». Общие часто задаваемые вопросы по Python . Документы.python.org. Архивировано из оригинала 24 октября 2012 года . Проверено 3 января 2023 г.
  78. ^ «15 способов, которыми Python является мощной силой в Интернете» . Архивировано из оригинала 11 мая 2019 года . Проверено 3 июля 2018 г.
  79. ^ "pprint - Принтер для отображения данных - Документация Python 3.11.0" . docs.python.org . Архивировано из оригинала 22 января 2021 года . Проверено 5 ноября 2022 г. материал=['спам', 'яйца', 'лесоруб', 'рыцари', 'ни']
  80. Кларк, Роберт (26 апреля 2019 г.). «Как быть питоником и почему вас это должно волновать». Середина . Архивировано из оригинала 13 августа 2021 года . Проверено 20 января 2021 г.
  81. ^ «Стиль кода - Путеводитель по Python для путешествующих автостопом» . docs.python-guide.org . Архивировано из оригинала 27 января 2021 года . Проверено 20 января 2021 г.
  82. ^ «Является ли Python хорошим языком для начинающих программистов?». Общие часто задаваемые вопросы по Python . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 21 марта 2007 г.
  83. ^ «Мифы об отступах в Python». Secnetix.de. Архивировано из оригинала 18 февраля 2018 года . Проверено 19 апреля 2011 г.
  84. Гуттаг, Джон В. (12 августа 2016 г.). Введение в вычисления и программирование с использованием Python: с применением к пониманию данных . МТИ Пресс. ISBN 978-0-262-52962-4.
  85. ^ «PEP 8 - Руководство по стилю для кода Python» . Python.org . Архивировано из оригинала 17 апреля 2019 года . Проверено 26 марта 2019 г.
  86. ^ «8. Ошибки и исключения - документация Python 3.12.0a0» . docs.python.org . Архивировано из оригинала 9 мая 2022 года . Проверено 9 мая 2022 г.
  87. ^ «Основные моменты: Python 2.5» . Python.org . Архивировано из оригинала 4 августа 2019 года . Проверено 20 марта 2018 г.
  88. ^ ван Россум, Гвидо (22 апреля 2009 г.). «Устранение хвостовой рекурсии». Neopythonic.blogspot.be. Архивировано из оригинала 19 мая 2018 года . Проверено 3 декабря 2012 г.
  89. ^ ван Россум, Гвидо (9 февраля 2006 г.). «Языковой дизайн – это не просто решение головоломок». Форумы Артимы . Артима. Архивировано из оригинала 17 января 2020 года . Проверено 21 марта 2007 г.
  90. ^ ван Россум, Гвидо; Эби, Филип Дж. (10 мая 2005 г.). «PEP 342 – Сопрограммы через расширенные генераторы». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 29 мая 2020 года . Проверено 19 февраля 2012 г.
  91. ^ "ПЭП 380" . Python.org. Архивировано из оригинала 4 июня 2020 года . Проверено 3 декабря 2012 г.
  92. Ссылки _ python.org . Архивировано из оригинала 20 июля 2006 года . Проверено 30 июля 2014 г.
  93. ^ «PEP 0465 — специальный инфиксный оператор для умножения матриц» . python.org . Архивировано из оригинала 4 июня 2020 года . Проверено 1 января 2016 г.
  94. ^ «Выпуск Python 3.5.1 и журнал изменений» . python.org . Архивировано из оригинала 14 мая 2020 года . Проверено 1 января 2016 г.
  95. ^ «Что нового в Python 3.8» . Архивировано из оригинала 8 июня 2020 года . Проверено 14 октября 2019 г.
  96. ^ ван Россум, Гвидо; Хеттингер, Раймонд (7 февраля 2003 г.). «PEP 308 – Условные выражения». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 13 марта 2016 года . Проверено 13 июля 2011 г.
  97. ^ «4. Встроенные типы - документация Python 3.6.3rc1» . python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 1 октября 2017 г.
  98. ^ «5.3. Кортежи и последовательности – документация Python 3.7.1rc2» . python.org . Архивировано из оригинала 10 июня 2020 года . Проверено 17 октября 2018 г.
  99. ^ ab «PEP 498 – Интерполяция буквальных строк». python.org . Архивировано из оригинала 15 июня 2020 года . Проверено 8 марта 2017 г.
  100. ^ «Почему слово «self» должно использоваться явно в определениях и вызовах методов?». Часто задаваемые вопросы по дизайну и истории . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 19 февраля 2012 г.
  101. ^ Свейгарт, Эл (2020). Не только основы работы с Python: лучшие практики написания чистого кода. Нет крахмального пресса. п. 322. ИСБН 978-1-59327-966-0. Архивировано из оригинала 13 августа 2021 года . Проверено 7 июля 2021 г.
  102. ^ «Справочник по языку Python, раздел 3.3. Классы нового и классического стиля для версии 2.7.1» . Архивировано из оригинала 26 октября 2012 года . Проверено 12 января 2011 г.
  103. ^ "PEP 484 - Подсказки по типам | peps.python.org" . peps.python.org . Проверено 29 ноября 2023 г.
  104. ^ «Ввод текста — Поддержка подсказок по типу». Документация Python . Фонд программного обеспечения Python . Проверено 22 декабря 2023 г.
  105. ^ «mypy — дополнительная статическая типизация для Python» . Архивировано из оригинала 6 июня 2020 года . Проверено 28 января 2017 г.
  106. ^ «Введение». mypyc.readthedocs.io . Проверено 22 декабря 2023 г.
  107. ^ «15. Арифметика с плавающей запятой: проблемы и ограничения - документация Python 3.8.3» . docs.python.org . Архивировано из оригинала 6 июня 2020 года . Проверено 6 июня 2020 г. Почти все машины сегодня (ноябрь 2000 г.) используют арифметику с плавающей запятой IEEE-754, и почти все платформы отображают числа с плавающей запятой Python в IEEE-754 «двойной точности».
  108. ^ Задка, Моше; ван Россум, Гвидо (11 марта 2001 г.). «PEP 237 – Объединение длинных и целых чисел». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 28 мая 2020 года . Проверено 24 сентября 2011 г.
  109. ^ «Встроенные типы». Архивировано из оригинала 14 июня 2020 года . Проверено 3 октября 2019 г.
  110. ^ «PEP 465 — специальный инфиксный оператор для умножения матриц» . python.org . Архивировано из оригинала 29 мая 2020 года . Проверено 3 июля 2018 г.
  111. ^ аб Задка, Моше; ван Россум, Гвидо (11 марта 2001 г.). «PEP 238 – Смена оператора подразделения». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 28 мая 2020 года . Проверено 23 октября 2013 г.
  112. ^ «Почему полы с целочисленным делением Python» . 24 августа 2010 г. Архивировано из оригинала 5 июня 2020 г. . Проверено 25 августа 2010 г.
  113. ^ «round», Стандартная библиотека Python, выпуск 3.2, §2: Встроенные функции , заархивировано из оригинала 25 октября 2012 г. , получено 14 августа 2011 г.
  114. ^ «round», Стандартная библиотека Python, выпуск 2.7, §2: Встроенные функции , заархивировано из оригинала 27 октября 2012 г. , получено 14 августа 2011 г.
  115. ^ Бизли, Дэвид М. (2009). Основной справочник Python (4-е изд.). Аддисон-Уэсли Профессионал. п. 66. ИСБН 9780672329784.
  116. ^ Керниган, Брайан В.; Ричи, Деннис М. (1988). Язык программирования C (2-е изд.). п. 206.
  117. ^ аб Батиста, Факундо (17 октября 2003 г.). «PEP 327 – Десятичный тип данных». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 4 июня 2020 года . Проверено 24 ноября 2008 г.
  118. ^ «Что нового в Python 2.6» . Документация Python v2.6.9 . 29 октября 2013 г. Архивировано из оригинала 23 декабря 2019 г. . Проверено 26 сентября 2015 г.
  119. ^ «10 причин, по которым Python полезен для исследований (и несколько причин, по которым этого не происходит) - Хойт Кепке» . Статистический факультет Вашингтонского университета . Архивировано из оригинала 31 мая 2020 года . Проверено 3 февраля 2019 г.
  120. Шелл, Скотт (17 июня 2014 г.). «Введение в Python для научных вычислений» (PDF) . Архивировано (PDF) из оригинала 4 февраля 2019 года . Проверено 3 февраля 2019 г.
  121. ^ Пиотровский, Пшемыслав (июль 2006 г.). «Создание среды быстрой веб-разработки для серверных страниц Python и Oracle». Технологическая сеть Oracle . Оракул. Архивировано из оригинала 2 апреля 2019 года . Проверено 12 марта 2012 г.
  122. Эби, Филипп Дж. (7 декабря 2003 г.). «PEP 333 — интерфейс шлюза веб-сервера Python v1.0». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 14 июня 2020 года . Проверено 19 февраля 2012 г.
  123. ^ "Счетчики модулей". Количество модулей . 14 ноября 2022 года. Архивировано из оригинала 26 июня 2022 года.
  124. ^ Энмысль, Кэнопи. «Навес». www.en Thought.com . Архивировано из оригинала 15 июля 2017 года . Проверено 20 августа 2016 г.
  125. ^ «PEP 7 – Руководство по стилю для кода C | peps.python.org» . peps.python.org . Архивировано из оригинала 24 апреля 2022 года . Проверено 28 апреля 2022 г.
  126. ^ «4. Создание расширений C и C++ — документация Python 3.9.2» . docs.python.org . Архивировано из оригинала 3 марта 2021 года . Проверено 1 марта 2021 г.
  127. ^ ван Россум, Гвидо (5 июня 2001 г.). «PEP 7 – Руководство по стилю для кода C». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 1 июня 2020 года . Проверено 24 ноября 2008 г.
  128. ^ «Байт-код CPython» . Документы.python.org. Архивировано из оригинала 5 июня 2020 года . Проверено 16 февраля 2016 г.
  129. ^ «Внутреннее устройство Python 2.5» (PDF) . Архивировано (PDF) из оригинала 6 августа 2012 года . Проверено 19 апреля 2011 г.
  130. ^ «Журнал изменений – документация Python 3.9.0» . docs.python.org . Архивировано из оригинала 7 февраля 2021 года . Проверено 8 февраля 2021 г.
  131. ^ «Загрузить Python». Python.org . Архивировано из оригинала 8 декабря 2020 года . Проверено 13 декабря 2020 г.
  132. ^ "история [vmspython]" . www.vmspython.org . Архивировано из оригинала 2 декабря 2020 года . Проверено 4 декабря 2020 г.
  133. ^ «Интервью с Гвидо ван Россумом». Орейли.com. Архивировано из оригинала 16 июля 2014 года . Проверено 24 ноября 2008 г.
  134. ^ «Загрузить Python для других платформ». Python.org . Архивировано из оригинала 27 ноября 2020 года . Проверено 4 декабря 2020 г.
  135. ^ «Совместимость PyPy». Pypy.org. Архивировано из оригинала 6 июня 2020 года . Проверено 3 декабря 2012 г.
  136. Команда The PyPy (28 декабря 2019 г.). "Загрузить и установить". ПиПи . Архивировано из оригинала 8 января 2022 года . Проверено 8 января 2022 г.
  137. ^ «Сравнение скорости между CPython и Pypy». Speed.pypy.org. Архивировано из оригинала 10 мая 2021 года . Проверено 3 декабря 2012 г.
  138. ^ «Функции Stackless на уровне приложения - документация PyPy 2.0.2» . Doc.pypy.org. Архивировано из оригинала 4 июня 2020 года . Проверено 17 июля 2013 г.
  139. ^ «Python для EV3» . Лего Образование . Архивировано из оригинала 7 июня 2020 года . Проверено 17 апреля 2019 г.
  140. Егулалп, Сердар (29 октября 2020 г.). «Пистон возвращается из мертвых, чтобы ускорить Python». Инфомир . Архивировано из оригинала 27 января 2021 года . Проверено 26 января 2021 г.
  141. ^ «cinder: ориентированная на производительность версия CPython для Instagram» . Гитхаб . Архивировано из оригинала 4 мая 2021 года . Проверено 4 мая 2021 г.
  142. Арока, Рафаэль (7 августа 2021 г.). «Снек Ланг: похоже на Python на Arduino». Еще один технологический блог . Проверено 4 января 2024 г.
  143. Офранк (CNXSoft), Жан-Люк (16 января 2020 г.). «Snekboard управляет силовыми функциями LEGO с помощью языков программирования CircuitPython или Snek (краудфандинг) — программное обеспечение CNX». CNX Software — Новости встраиваемых систем . Проверено 4 января 2024 г.
  144. ^ Кеннеди (@mkennedy), Майкл. «Готовы узнать, стали ли вы знаменитыми?». pythonbytes.fm . Проверено 4 января 2024 г.
  145. Паккард, Кейт (20 декабря 2022 г.). «Язык программирования Snek: встроенный язык вычислений на основе Python» (PDF) .
  146. ^ «Планы по оптимизации Python». Хостинг проектов Google . 15 декабря 2009 года. Архивировано из оригинала 11 апреля 2016 года . Проверено 24 сентября 2011 г.
  147. ^ «Python на Nokia N900». Стохастическая геометрия . 29 апреля 2010 г. Архивировано из оригинала 20 июня 2019 г. Проверено 9 июля 2015 г.
  148. ^ "Бритон". brython.info . Архивировано из оригинала 3 августа 2018 года . Проверено 21 января 2021 г.
  149. ^ «Траншифрование — Python в браузере» . transcrypt.org . Архивировано из оригинала 19 августа 2018 года . Проверено 22 декабря 2020 г.
  150. ^ «Трансшифрование: анатомия компилятора Python в JavaScript». ИнфоQ . Архивировано из оригинала 5 декабря 2020 года . Проверено 20 января 2021 г.
  151. ^ «Кодон: различия с Python». Архивировано из оригинала 25 мая 2023 года . Проверено 28 августа 2023 г.
  152. Лоусон, Лорейн (14 марта 2023 г.). «Компилятор, созданный MIT, ускоряет код Python». Новый стек . Архивировано из оригинала 6 апреля 2023 года . Проверено 28 августа 2023 г.
  153. ^ "Дом Нуитка | Дом Нуитка" . nuitka.net . Архивировано из оригинала 30 мая 2020 года . Проверено 18 августа 2017 г.
  154. ^ Гуэлтон, Серж; Брюне, Пьеррик; Амини, Мехди; Мерлини, Адриан; Корбийон, Ксавье; Рейно, Алан (16 марта 2015 г.). «Pythran: обеспечение статической оптимизации научных программ Python». Вычислительная наука и открытия . Издательство ИОП. 8 (1): 014001. Бибкод : 2015CS&D....8a4001G. дои : 10.1088/1749-4680/8/1/014001 . ISSN  1749-4699.
  155. ^ «Транспилятор Python → 11l → C++» . Архивировано из оригинала 24 сентября 2022 года . Проверено 17 июля 2022 г.
  156. ^ "Google/сварливый". 10 апреля 2020 г. Архивировано из оригинала 15 апреля 2020 г. . Получено 25 марта 2020 г. - через GitHub.
  157. ^ «Проекты». opensource.google . Архивировано из оригинала 24 апреля 2020 года . Проверено 25 марта 2020 г.
  158. ^ Франциско, Томас Клэберн в Сан. «Код Google Grumpy делает Python Go» . www.theregister.com . Архивировано из оригинала 7 марта 2021 года . Проверено 20 января 2021 г.
  159. ^ «GitHub – IronLanguages/ironpython3: реализация Python 3.x для .NET Framework, построенная на основе среды выполнения динамического языка» . Гитхаб . Архивировано из оригинала 28 сентября 2021 года.
  160. ^ "IronPython.net/". IronPython.net . Архивировано из оригинала 17 апреля 2021 года.
  161. ^ «Часто задаваемые вопросы по Jython» . www.jython.org . Архивировано из оригинала 22 апреля 2021 года . Проверено 22 апреля 2021 г.
  162. ^ Мурри, Риккардо (2013). Производительность среды выполнения Python для нечислового научного кода . Европейская конференция «Python в науке» (EuroSciPy). arXiv : 1404.6388 . Бибкод : 2014arXiv1404.6388M.
  163. ^ "Игра с тестами компьютерного языка" . Архивировано из оригинала 14 июня 2020 года . Проверено 30 апреля 2020 г.
  164. ^ аб Варшава, Барри; Хилтон, Джереми; Гуджер, Дэвид (13 июня 2000 г.). «PEP 1 – Цель и руководящие принципы PEP». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 6 июня 2020 года . Проверено 19 апреля 2011 г.
  165. ^ «PEP 8 - Руководство по стилю для кода Python» . Python.org . Архивировано из оригинала 17 апреля 2019 года . Проверено 26 марта 2019 г.
  166. ^ Кэннон, Бретт. «Гвидо, некоторые ребята и список рассылки: как разрабатывается Python». python.org . Фонд программного обеспечения Python. Архивировано из оригинала 1 июня 2009 года . Проверено 27 июня 2009 г.
  167. ^ «Перемещение ошибок Python на GitHub [LWN.net]» . Архивировано из оригинала 2 октября 2022 года . Проверено 2 октября 2022 г.
  168. ^ «Руководство разработчика Python – Руководство разработчика Python» . devguide.python.org . Архивировано из оригинала 9 ноября 2020 года . Проверено 17 декабря 2019 г.
  169. Хьюз, Оуэн (24 мая 2021 г.). «Языки программирования: почему Python 4.0 может никогда не появиться, по мнению его создателя». Техреспублика . Архивировано из оригинала 14 июля 2022 года . Проверено 16 мая 2022 г.
  170. ^ «PEP 602 - Годовой цикл выпуска Python» . Python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 6 ноября 2019 г.
  171. ^ «Изменение частоты выпусков Python [LWN.net]» . lwn.net . Архивировано из оригинала 6 ноября 2019 года . Проверено 6 ноября 2019 г.
  172. Норвиц, Нил (8 апреля 2002 г.). «Расписание выпусков [Python-Dev] (было Стабильность и изменения)». Архивировано из оригинала 15 декабря 2018 года . Проверено 27 июня 2009 г.
  173. ^ аб Ааз; Бакстер, Энтони (15 марта 2001 г.). «PEP 6 – Релизы с исправлениями ошибок». Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 27 июня 2009 г.
  174. ^ "Python Buildbot" . Руководство разработчика Python . Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 24 сентября 2011 г.
  175. ^ «1. Расширение Python с помощью C или C ++ - документация Python 3.9.1» . docs.python.org . Архивировано из оригинала 23 июня 2020 года . Проверено 14 февраля 2021 г.
  176. ^ «PEP 623 – Удалить wstr из Unicode» . Python.org . Архивировано из оригинала 5 марта 2021 года . Проверено 14 февраля 2021 г.
  177. ^ «PEP 634 - Соответствие структурному шаблону: Спецификация» . Python.org . Архивировано из оригинала 6 мая 2021 года . Проверено 14 февраля 2021 г.
  178. ^ «Инструменты документации». Python.org . Архивировано из оригинала 11 ноября 2020 года . Проверено 22 марта 2021 г.
  179. ^ ab «Разжигая аппетит». Учебник по Python . Фонд программного обеспечения Python. Архивировано из оригинала 26 октября 2012 года . Проверено 20 февраля 2012 г.
  180. ^ «В Python следует ли использовать else после возврата в блоке if?». Переполнение стека . Обмен стеками. 17 февраля 2011 г. Архивировано из оригинала 20 июня 2019 г. . Проверено 6 мая 2011 г.
  181. ^ Лутц, Марк (2009). Изучение Python: мощное объектно-ориентированное программирование. О'Рейли Медиа, Инк. с. 17. ISBN 9781449379322. Архивировано из оригинала 17 июля 2017 года . Проверено 9 мая 2017 г.
  182. ^ Фехили, Крис (2002). Питон. Персиковая яма Пресс. п. хв. ISBN 9780201748840. Архивировано из оригинала 17 июля 2017 года . Проверено 9 мая 2017 г.
  183. ^ Любанович, Билл (2014). Знакомство с Питоном. Севастополь, Калифорния: O'Reilly Media. п. 305. ИСБН 978-1-4493-5936-2. Проверено 31 июля 2023 г.
  184. Блейк, Трой (18 января 2021 г.). «Индекс ТИОБЕ за январь 2021 года». Новости технологий и информация от SeniorDBA . Архивировано из оригинала 21 марта 2021 года . Проверено 26 февраля 2021 г.
  185. Пречелт, Лутц (14 марта 2000 г.). «Эмпирическое сравнение C, C++, Java, Perl, Python, Rexx и Tcl» (PDF) . Архивировано (PDF) из оригинала 3 января 2020 года . Проверено 30 августа 2013 г.
  186. ^ «Цитаты о Python». Фонд программного обеспечения Python. Архивировано из оригинала 3 июня 2020 года . Проверено 8 января 2012 г.
  187. ^ «Организации, использующие Python». Фонд программного обеспечения Python. Архивировано из оригинала 21 августа 2018 года . Проверено 15 января 2009 г.
  188. ^ «Python: Святой Грааль программирования». Бюллетень ЦЕРН . Публикации ЦЕРН (31/2006). 31 июля 2006 г. Архивировано из оригинала 15 января 2013 г. Проверено 11 февраля 2012 г.
  189. Шафер, Дэниел Г. (17 января 2003 г.). «Python упрощает проектирование миссий космических кораблей». Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 24 ноября 2008 г.
  190. ^ «Торнадо: веб-фреймворк реального времени Facebook для Python - Facebook для разработчиков» . Facebook для разработчиков . Архивировано из оригинала 19 февраля 2019 года . Проверено 19 июня 2018 г.
  191. ^ «Что движет Instagram: сотни случаев, десятки технологий» . Инстаграм Инжиниринг. 11 декабря 2016 г. Архивировано из оригинала 15 июня 2020 г. Проверено 27 мая 2019 г.
  192. ^ «Как мы используем Python в Spotify» . Лаборатория Spotify . 20 марта 2013 г. Архивировано из оригинала 10 июня 2020 г. . Проверено 25 июля 2018 г.
  193. Фортенберри, Тим (17 января 2003 г.). «Промышленный свет и магия работают на Python». Фонд программного обеспечения Python. Архивировано из оригинала 6 июня 2020 года . Проверено 11 февраля 2012 г.
  194. Тафт, Дэррил К. (5 марта 2007 г.). «Python проникает в системы». eWeek.com . Зифф Дэвис Холдингс. Архивировано из оригинала 13 августа 2021 года . Проверено 24 сентября 2011 г.
  195. ^ GitHub - reddit-archive/reddit: исторический код с сайта reddit.com., Архивы Reddit, заархивировано из оригинала 1 июня 2020 г. , получено 20 марта 2019 г.
  196. ^ «Статистика использования и доля рынка Python для веб-сайтов» . 2012. Архивировано из оригинала 13 августа 2021 года . Проверено 18 декабря 2012 г.
  197. ^ Олифант, Трэвис (2007). «Python для научных вычислений». Вычисления в науке и технике . 9 (3): 10–20. Бибкод : 2007CSE.....9c..10O. CiteSeerX 10.1.1.474.6460 . дои : 10.1109/MCSE.2007.58. S2CID  206457124. Архивировано из оригинала 15 июня 2020 года . Проверено 10 апреля 2015 г. 
  198. ^ Миллман, К. Джаррод; Айвазис, Михаил (2011). «Python для ученых и инженеров». Вычисления в науке и технике . 13 (2): 9–12. Бибкод : 2011CSE....13b...9M. дои : 10.1109/MCSE.2011.36. Архивировано из оригинала 19 февраля 2019 года . Проверено 7 июля 2014 г.
  199. ^ Научное образование с помощью SageMath, Инновационные вычисления в естественнонаучном образовании, заархивировано из оригинала 15 июня 2020 г. , получено 22 апреля 2019 г.
  200. ^ «OpenCV: Учебные пособия по OpenCV-Python» . docs.opencv.org . Архивировано из оригинала 23 сентября 2020 года . Проверено 14 сентября 2020 г.
  201. ^ Дин, Джефф ; Монга, Раджат; и другие. (9 ноября 2015 г.). «TensorFlow: крупномасштабное машинное обучение в гетерогенных системах» (PDF) . TensorFlow.org . Google Исследования. Архивировано (PDF) из оригинала 20 ноября 2015 г. Проверено 10 ноября 2015 г.
  202. ^ Пятецкий, Григорий. «Python съедает R: лучшее программное обеспечение для аналитики, обработки данных и машинного обучения в 2018 году: тенденции и анализ». КДнаггетс . Архивировано из оригинала 15 ноября 2019 года . Проверено 30 мая 2018 г.
  203. ^ «Кто использует scikit-learn? - документация scikit-learn 0.20.1» . scikit-learn.org . Архивировано из оригинала 6 мая 2020 года . Проверено 30 ноября 2018 г.
  204. ^ Джуппи, Норм . «Google усложняет задачи машинного обучения с помощью специального чипа TPU» . Блог об облачной платформе Google . Архивировано из оригинала 18 мая 2016 года . Проверено 19 мая 2016 г.
  205. ^ «Набор инструментов для естественного языка - документация NLTK 3.5b1» . www.nltk.org . Архивировано из оригинала 13 июня 2020 года . Проверено 10 апреля 2020 г.
  206. ^ «Tkinter — интерфейс Python для TCL/Tk» . Архивировано из оригинала 18 октября 2012 года . Проверено 9 июня 2023 г.
  207. ^ "Учебное пособие по Python Tkinter" . 3 июня 2020 года. Архивировано из оригинала 9 июня 2023 года . Проверено 9 июня 2023 г.
  208. ^ «Установщики GIMP для Windows – часто задаваемые вопросы» . 26 июля 2013 года. Архивировано из оригинала 17 июля 2013 года . Проверено 26 июля 2013 г.
  209. ^ "Компоненты Jasc PSP9". Архивировано из оригинала 19 марта 2008 года.
  210. ^ «О начале работы с написанием сценариев геообработки» . Справка ArcGIS Desktop 9.2 . Институт исследования экологических систем. 17 ноября 2006 г. Архивировано из оригинала 5 июня 2020 г. . Проверено 11 февраля 2012 г.
  211. ^ Свиная грудинка CCP (24 августа 2010 г.). «Бесстековый Python 2.7». Блоги разработчиков сообщества EVE . Игры КПК . Архивировано из оригинала 11 января 2014 года . Проверено 11 января 2014 г. Как вы, возможно, знаете, в основе EVE лежит язык программирования, известный как Stackless Python.
  212. ^ Кодилл, Барри (20 сентября 2005 г.). «Модификация Sid Meier's Civilization IV». Блог разработчиков Sid Meier’s Civilization IV . Игры Фираксис . Архивировано из оригинала 2 декабря 2010 года. Мы создали три уровня инструментов... Следующий уровень предлагает поддержку Python и XML, позволяя более опытным моддерам манипулировать игровым миром и всем, что в нем.
  213. ^ «Руководство по языку Python (v1.0)» . API данных списка документов Google v1.0 . Архивировано из оригинала 15 июля 2010 года.
  214. ^ «Настройка и использование Python». Фонд программного обеспечения Python. Архивировано из оригинала 17 июня 2020 года . Проверено 10 января 2020 г. .
  215. ^ «Иммунитет: зная, что вы в безопасности» . Архивировано из оригинала 16 февраля 2009 года.
  216. ^ «Основная безопасность». Основная безопасность . Архивировано из оригинала 9 июня 2020 года . Проверено 10 апреля 2020 г.
  217. ^ «Что такое сахар?». Сахарные лаборатории. Архивировано из оригинала 9 января 2009 года . Проверено 11 февраля 2012 г.
  218. ^ «4.0 Новые функции и исправления» . LibreOffice.org . Фонд документов . 2013. Архивировано из оригинала 9 февраля 2014 года . Проверено 25 февраля 2013 г.
  219. ^ «Ошибки для пользователей Python». boo.codehaus.org . Фонд Кодхаус. Архивировано из оригинала 11 декабря 2008 года . Проверено 24 ноября 2008 г.
  220. ^ Эстербрук, Чарльз. «Благодарности». cobra-language.com . Язык кобры. Архивировано из оригинала 8 февраля 2008 года . Проверено 7 апреля 2010 г.
  221. ^ «Предложения: итераторы и генераторы [ES4 Wiki]» . wiki.ecmascript.org. Архивировано из оригинала 20 октября 2007 года . Проверено 24 ноября 2008 г.
  222. ^ «Часто задаваемые вопросы» . Документация Godot Engine . Архивировано из оригинала 28 апреля 2021 года . Проверено 10 мая 2021 г.
  223. Кинкейд, Джейсон (10 ноября 2009 г.). «Google's Go: новый язык программирования, совместимый с Python и C++». ТехКранч . Архивировано из оригинала 18 января 2010 года . Проверено 29 января 2010 г.
  224. Страчан, Джеймс (29 августа 2003 г.). «Groovy – рождение нового динамического языка для платформы Java». Архивировано из оригинала 5 апреля 2007 года . Проверено 11 июня 2007 г.
  225. ^ «Модульная документация - Почему Mojo🔥» . docs.modular.com . Архивировано из оригинала 5 мая 2023 года . Проверено 5 мая 2023 г. Mojo как член семейства Python [..] Использование Python значительно упрощает наши усилия по проектированию, поскольку большая часть синтаксиса уже определена. [..] мы решили, что правильная долгосрочная цель для Mojo — предоставить расширенный набор Python (т.е. быть совместимым с существующими программами) и немедленно внедрить CPython для поддержки экосистемы с длинным хвостом. Мы ожидаем и надеемся, что программист Python будет сразу же знаком с Mojo, а также предоставит новые инструменты для разработки кода системного уровня, которые позволят вам делать то, для чего Python обращается к C и C++.
  226. Спенсер, Майкл (4 мая 2023 г.). «Что такое язык программирования Mojo?». datasciencelearningcenter.substack.com . Архивировано из оригинала 5 мая 2023 года . Проверено 5 мая 2023 г.
  227. Егулалп, Сердар (16 января 2017 г.). «Язык Nim основан на лучшем из Python, Rust, Go и Lisp». Инфомир . Архивировано из оригинала 13 октября 2018 года . Проверено 7 июня 2020 г. Синтаксис Nim сильно напоминает синтаксис Python, поскольку он использует блоки кода с отступами и некоторые элементы того же синтаксиса (например, способ построения блоков if/elif/then/else).
  228. ^ «Интервью с создателем Ruby». Linuxdevcenter.com. Архивировано из оригинала 28 апреля 2018 года . Проверено 3 декабря 2012 г.
  229. Латтнер, Крис (3 июня 2014 г.). «Домашняя страница Криса Лэттнера». Крис Лэттнер. Архивировано из оригинала 22 декабря 2015 года . Проверено 3 июня 2014 г. Я начал работу над языком программирования Swift в июле 2010 года. Я реализовал большую часть базовой структуры языка, и лишь несколько человек знали о его существовании. Несколько других (удивительных) людей начали серьезно вносить свой вклад в конце 2011 года, и в июле 2013 года это стало основным направлением деятельности группы Apple Developer Tools [...], черпая идеи из Objective-C, Rust, Haskell, Ruby, Python, C#, CLU и многие другие, чтобы перечислять их.
  230. ^ Куприс, Андреас; Товарищи, Донал К. (14 сентября 2000 г.). «СОВЕТ №3: Формат СОВЕТА». tcl.tk. _ Разработчик Tcl Xchange. Архивировано из оригинала 13 июля 2017 года . Проверено 24 ноября 2008 г.
  231. ^ Густавссон, Пер; Нисканен, Раймо (29 января 2007 г.). «EEP 1: Цель и руководящие принципы EEP». erlang.org. Архивировано из оригинала 15 июня 2020 года . Проверено 19 апреля 2011 г.
  232. ^ «Процесс быстрой эволюции». Репозиторий Swift Programming Language Evolution на GitHub . 18 февраля 2020 года. Архивировано из оригинала 27 апреля 2020 года . Проверено 27 апреля 2020 г.

Источники

дальнейшее чтение

Внешние ссылки