Python (язык программирования)
Python — это высокого уровня язык программирования общего назначения . Его философия дизайна подчеркивает читаемость кода за счет использования значительных отступов . [33]
Python является динамически типизированным и собирает мусор . Он поддерживает несколько парадигм программирования , включая структурированное (особенно процедурное ), объектно-ориентированное и функциональное программирование . Его часто называют языком «с батарейками» из-за его обширной стандартной библиотеки . [34] [35]
Гвидо ван Россум начал работать над Python в конце 1980-х годов как преемником языка программирования ABC и впервые выпустил его в 1991 году как Python 0.9.0. [36] Python 2.0 был выпущен в 2000 году. Python 3.0, выпущенный в 2008 году, представлял собой основную версию, не полностью обратно совместимую с более ранними версиями. Python 2.7.18, выпущенный в 2020 году, был последней версией Python 2. [37]
Python неизменно считается одним из самых популярных языков программирования и получил широкое распространение в сообществе машинного обучения . [38] [39] [40] [41]
История [ править ]
Python был изобретен в конце 1980-х годов. [42] из Гвидо ван Россум Центра Wiskunde & Informatica (CWI) в Нидерландах как преемник языка программирования ABC , вдохновленный SETL , [43] способен обрабатывать исключения и взаимодействовать с операционной системой Amoeba . [12] Его реализация началась в декабре 1989 года. [44] Ван Россум брал на себя единоличную ответственность за проект в качестве ведущего разработчика до 12 июля 2018 года, когда он объявил о своем «постоянном отпуске» от своих обязанностей « доброжелательного диктатора на всю жизнь » Python (BDFL), титул, который ему даровало сообщество Python. чтобы отразить его долгосрочную приверженность в качестве главного лица, принимающего решения по проекту [45] (с тех пор он вышел на пенсию и носит одноименный титул «Почетный BDFL»). В январе 2019 года активные разработчики ядра Python избрали Руководящий совет из пяти человек, который возглавит проект. [46] [47]
Python 2.0 был выпущен 16 октября 2000 года и содержал множество важных новых функций, таких как понимание списков , сборка мусора с обнаружением циклов , подсчет ссылок и поддержка Unicode . [48] Python 3.0, выпущенный 3 декабря 2008 г., многие из его основных функций перенесены в Python 2.6.x. [49] и 2.7.х. Релизы Python 3 включают в себя 2to3
утилита, которая автоматизирует перевод кода Python 2 в Python 3. [50]
Python 2.7 Окончание поддержки первоначально было назначено на 2015 год, но затем было перенесено на 2020 год из-за опасений, что большую часть существующего кода невозможно легко перенести на Python 3. [51] [52] Никаких дальнейших исправлений безопасности или других улучшений для него выпускаться не будет. [53] [54] В настоящее время поддерживаются только версии 3.8 и более поздние (2023 проблемы безопасности были исправлены, например, в версии 3.7.17, последней версии 3.7.x). [55] ). Хотя Python 2.7 и старше официально не поддерживается, другая неофициальная реализация Python, PyPy , продолжает поддерживать Python 2, т.е. «2.7.18+» (плюс 3.9 и 3.10), причем плюс означает (по крайней мере некоторые) « обратно перенесенные обновления безопасности ». ". [56]
В 2021 году (и еще дважды в 2022 году) обновления безопасности были ускорены, поскольку все версии Python были небезопасными (включая 2.7). [57] ) из-за проблем с безопасностью, приводящих к возможному удаленному выполнению кода. [58] и отравление веб-кэша . [59] В 2022 году были ускорены выпуски Python 3.10.4 и 3.9.12. [60] и 3.8.13 из-за множества проблем с безопасностью. [61] Когда в мае 2022 года был выпущен Python 3.9.13, было объявлено, что серия 3.9 (присоединяющаяся к более старым сериям 3.8 и 3.7) в будущем будет получать только исправления безопасности. [62] 7 сентября 2022 года из-за потенциальной атаки типа «отказ в обслуживании» были выпущены четыре новых выпуска : 3.10.7, 3.9.14, 3.8.14 и 3.7.14. [63] [64]
По состоянию на октябрь 2023 г. [update] Python 3.12 — стабильная версия, а 3.12 и 3.11 — единственные версии с активной (а не просто поддержкой безопасности) поддержкой. Заметные изменения в версии 3.11 по сравнению с версией 3.10 включают увеличенную скорость выполнения программ и улучшенные отчеты об ошибках. [65]
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 г. [update]Python 3.8 является самой старой поддерживаемой версией Python (хотя и находится на этапе «поддержки безопасности»), поскольку срок службы Python 3.7 подходит к концу . [66]
В Python 3.13 появился инкрементный (более короткие паузы для сбора в программах с большим количеством объектов) сборщик мусора, экспериментальный JIT-компилятор , [67] и удаления из C API. Некоторые стандартные библиотечные модули, 19 разряженных батарей , множество устаревших классов, функций и методов и многое другое будут удалены в Python 3.15 и/или 3.16. [68] Начиная с версии 3.13, она и более поздние версии имеют 2 года полной поддержки (было полтора года); за которым следуют 3 года поддержки безопасности (при таком же общем объеме поддержки, как и раньше).
Философия дизайна и особенности [ править ]
Python — это мультипарадигмальный язык программирования . Объектно-ориентированное программирование и структурное программирование полностью поддерживаются, и многие из их функций поддерживают функциональное программирование и аспектно-ориентированное программирование (включая метапрограммирование) . [69] и метаобъекты ). [70] Многие другие парадигмы поддерживаются посредством расширений, включая проектирование по контракту. [71] [72] и логическое программирование . [73]
Python использует динамическую типизацию и комбинацию подсчета ссылок и сборщика мусора с обнаружением циклов для управления памятью . [74] Он использует динамическое разрешение имен ( позднее связывание ), которое связывает имена методов и переменных во время выполнения программы.
Его дизайн предлагает некоторую поддержку функционального программирования в традициях Lisp . Он имеет filter
, map
и reduce
функции; списки , словари , множества и выражения -генераторы . [75] Стандартная библиотека имеет два модуля ( itertools
и functools
), реализующие функциональные инструменты, заимствованные из Haskell и Standard ML . [76]
Его основная философия изложена в « Дзен Python» (PEP 20), который включает в себя такие афоризмы , как: [77]
- Красивое лучше уродливого.
- Явное лучше неявного.
- Простое лучше сложного.
- Комплекс лучше сложного.
- Читабельность имеет значение.
Однако функции Python регулярно нарушают эти принципы и подвергаются критике за ненужное раздувание языка. [78] [79] Ответы на эту критику заключаются в том, что дзен Python — это скорее рекомендация, чем правило. [80] Добавление некоторых новых функций вызвало настолько споры, что Гвидо ван Россум подал в отставку с поста пожизненного великодушного диктатора из-за резкой критики по поводу добавления оператора выражения присваивания в Python 3.8. [81] [82]
Тем не менее, вместо того, чтобы встраивать все свои функциональные возможности в ядро, Python был спроектирован так, чтобы его можно было легко расширять с помощью модулей. Эта компактная модульность сделала его особенно популярным как средство добавления программируемых интерфейсов к существующим приложениям. Представление Ван Россума о небольшом базовом языке с большой стандартной библиотекой и легко расширяемым интерпретатором возникло из-за его разочарования в ABC , который придерживался противоположного подхода. [42]
Python утверждает, что стремится к более простому и менее запутанному синтаксису и грамматике, предоставляя разработчикам возможность выбора методологии кодирования. В отличие от девиза Perl « есть более одного способа сделать это », Python придерживается принципа «должен быть один — и желательно только один — очевидный способ сделать это». философия. [77] Однако на практике Python предоставляет множество способов решения одной и той же задачи. Например, существует как минимум три способа форматирования строкового литерала, и нет уверенности в том, какой из них следует использовать программисту. [83] Алекс Мартелли , научный сотрудник и Python Software Foundation автор книг о Python, написал: «Описание чего-либо как «умного» не считается комплиментом в культуре Python». [84]
Разработчики Python обычно стараются избегать преждевременной оптимизации и отклоняют исправления для некритических частей эталонной реализации CPython , которые могут обеспечить незначительное увеличение скорости за счет ясности. [85] Скорость выполнения можно повысить, переместив критичные к скорости функции в модули расширения, написанные на таких языках, как C, или используя JIT-компилятор, такой как PyPy . Также возможна кросс-компиляция на другие языки , но она либо не обеспечивает полного ускорения, которого можно было бы ожидать, поскольку Python — очень динамичный язык, либо компилируется ограниченное подмножество Python, и, возможно, семантика немного изменился. [86]
Разработчики Python стремятся сделать его интересным в использовании. Это отражено в его названии — дань уважения британской комедийной группе « Монти Пайтон». [87] - и иногда в игривых подходах к учебным пособиям и справочным материалам, таких как использование в примерах терминов «спам» и «яйца» (отсылка к скетчу Монти Пайтона ) вместо часто используемых «foo» и «bar». " . [88] [89] Распространенным неологизмом в сообществе Python является pythonic , который имеет широкий спектр значений, связанных со стилем программы. «Питонический» код может хорошо использовать идиомы Python , быть естественным, демонстрировать свободное владение языком или соответствовать минималистской философии Python и акценту на читабельности. Код, который сложно понять или который читается как грубая транскрипция с другого языка программирования, называется непитоническим . [90]
Синтаксис и семантика [ править ]
Python задуман как легко читаемый язык. Его форматирование визуально лаконично и часто использует ключевые слова на английском языке, тогда как в других языках используется пунктуация. В отличие от многих других языков, в нем не используются фигурные скобки для разделения блоков, а точки с запятой после операторов разрешены, но используются редко. Он имеет меньше синтаксических исключений и особых случаев, чем C или Pascal . [91]
Отступ [ править ]
в Python используются пробельные отступы, а не фигурные скобки или ключевые слова Для разделения блоков . Увеличение отступа происходит после определенных утверждений; уменьшение отступа означает конец текущего блока. [92] Таким образом, визуальная структура программы точно отражает ее смысловую структуру. [93] Эту особенность иногда называют правилом «вне игры» . Некоторые другие языки используют отступы таким образом; но в большинстве случаев отступы не имеют семантического значения. Рекомендуемый размер отступа — четыре пробела. [94]
Операторы и поток управления [ править ]
Python Заявления включают в себя:
- Оператор присваивания с использованием одного знака равенства
=
- The
if
оператор, который условно выполняет блок кода вместе сelse
иelif
(сокращение else-if) - The
for
оператор, который выполняет итерацию по итерируемому объекту, записывая каждый элемент в локальную переменную для использования прикрепленным блоком. - The
while
оператор, который выполняет блок кода, пока его условие истинно - The
try
оператор, который позволяет перехватывать и обрабатывать исключения, возникающие в прикрепленном к нему блоке кода.except
предложения (или новый синтаксисexcept*
в Python 3.11 для групп исключений [95] ); это также гарантирует, что код очистки вfinally
блок всегда запускается независимо от того, как блок завершается - The
raise
оператор, используемый для вызова указанного исключения или повторного вызова перехваченного исключения - The
class
оператор, который выполняет блок кода и присоединяет его локальное пространство имен к классу для использования в объектно-ориентированном программировании. - The
def
оператор, который определяет функцию или метод - The
with
оператор, который включает блок кода в диспетчер контекста (например, получение блокировки перед его запуском, а затем снятие блокировки; или открытие и закрытие файла ) , что обеспечивает инициализации получения ресурсов поведение, подобное (RAII). и замена распространенной идиомы try/finally [96] - The
break
оператор, который выходит из цикла - The
continue
оператор, который пропускает остальную часть текущей итерации и переходит к следующей - The
del
оператор, который удаляет переменную — удаляя ссылку из имени на значение и выдавая ошибку, если на переменную ссылаются до ее переопределения - The
pass
оператор, служащий NOP , синтаксически необходимый для создания пустого блока кода - The
assert
оператор, используемый при отладке для проверки условий, которые должны применяться - The
yield
оператор, который возвращает значение функции - генератора (а также оператора); используется для реализации сопрограмм - The
return
оператор, используемый для возврата значения из функции - The
import
иfrom
операторы, используемые для импорта модулей, функции или переменные которых могут использоваться в текущей программе.
Оператор присваивания ( =
) привязывает имя как ссылку на отдельный, динамически выделяемый объект . Переменные впоследствии могут быть повторно привязаны в любое время к любому объекту. В Python имя переменной представляет собой общий держатель ссылки без фиксированного типа данных ; однако он всегда ссылается на какой-либо объект определенного типа. Это называется динамической типизацией — в отличие от статически типизированных языков, где каждая переменная может содержать только значение определенного типа.
Python не поддерживает хвостовых вызовов оптимизацию или первоклассные продолжения и, по словам Ван Россума, никогда не будет. [97] [98] Однако лучшая поддержка функций, подобных сопрограммам, обеспечивается за счет расширения генераторов Python . [99] До версии 2.5 генераторы были ленивыми итераторами ; данные передавались из генератора в одностороннем порядке. Начиная с Python 2.5, можно передавать данные обратно в функцию-генератор; а начиная с версии 3.3 его можно передавать через несколько уровней стека. [100]
Выражения [ править ]
Python Выражения включают в себя:
- The
+
,-
, и*
операторы математического сложения, вычитания и умножения аналогичны операторам других языков, но поведение деления отличается. В Python существует два типа делений: напольное деление (или целочисленное деление).//
и с плавающей запятой/
разделение. [101] Python использует**
оператор возведения в степень. - Python использует
+
оператор конкатенации строк. Python использует*
оператор для дублирования строки заданное количество раз. - The
@
инфиксный оператор. Он предназначен для использования такими библиотеками, как NumPy, для умножения матриц . [102] [103] - Синтаксис
:=
, называемый «оператор моржа», был представлен в Python 3.8. Он присваивает значения переменным как часть более крупного выражения. [104] - В Python,
==
сравнивает по значению. Pythonis
Оператор может использоваться для сравнения идентификаторов объектов (сравнение по ссылке), а сравнения могут быть объединены в цепочку, например:a <= b <= c
. - Python использует
and
,or
, иnot
как логические операторы. - В Python есть выражение, называемое пониманием списка , и более общее выражение, называемое генератором выражением- . [75]
- Анонимные функции реализуются с помощью лямбда-выражений ; однако в каждом теле может быть только одно выражение.
- Условные выражения записываются как
x if c else y
[105] (отличается порядком операндов отc ? x : y
оператор, общий для многих других языков). - Python проводит различие между списками и кортежами . Списки записываются как
[1, 2, 3]
, являются изменяемыми и не могут использоваться в качестве ключей словарей (ключи словарей должны быть неизменяемыми в Python). Кортежи, записанные как(1, 2, 3)
, являются неизменяемыми и, следовательно, могут использоваться в качестве ключей словарей при условии, что все элементы кортежа неизменяемы.+
Оператор можно использовать для объединения двух кортежей, при этом их содержимое не изменяется напрямую, а создается новый кортеж, содержащий элементы обоих. Таким образом, учитывая переменнуюt
изначально равен(1, 2, 3)
, выполнениеt = t + (4, 5)
сначала оцениваетt + (4, 5)
, что дает(1, 2, 3, 4, 5)
, который затем присваивается обратноt
— тем самым эффективно «изменяя содержимое»t
в соответствии с неизменяемой природой объектов-кортежей. Круглые скобки необязательны для кортежей в однозначном контексте. [106] - В Python предусмотрена распаковка последовательности , при которой несколько выражений, каждое из которых оценивает все, что может быть присвоено (переменной, записываемому свойству и т. д.), связаны таким же образом, как и формирующие литералы кортежа, и в целом располагаются слева. -сторона знака равенства в операторе присваивания. Оператор ожидает итерируемый объект справа от знака равенства, который создает то же количество значений, что и предоставленные записываемые выражения; при проходе по ним он присваивает каждое из полученных значений соответствующему выражению слева. [107]
- В Python есть оператор «формата строки».
%
который действует аналогичноprintf
форматировать строки в C — например"spam=%s eggs=%d" % ("blah", 2)
оценивается как"spam=blah eggs=2"
. В Python 2.6+ и 3+ это было дополненоformat()
методstr
класс, например"spam={0} eggs={1}".format("blah", 2)
. В Python 3.6 добавлены «f-строки»:spam = "blah"; eggs = 2; f'spam={spam} eggs={eggs}'
. [108] - Строки в Python можно объединить , «добавив» их (с помощью того же оператора, что и для добавления целых чисел и чисел с плавающей запятой), например
"spam" + "eggs"
возвращает"spameggs"
. Если строки содержат числа, они добавляются как строки, а не целые числа, например"2" + "2"
возвращает"22"
. - Python имеет различные строковые литералы :
- Разделяется одинарными или двойными кавычками; в отличие от оболочек Unix , Perl и языков, основанных на Perl, одинарные и двойные кавычки работают одинаково. Оба используют обратную косую черту (
\
) в качестве escape-символа . Строковая интерполяция стала доступна в Python 3.6 как «форматированные строковые литералы». [108] - Тройные кавычки (начинающиеся и заканчивающиеся тремя одинарными или двойными кавычками), которые могут охватывать несколько строк и функционировать, как здесь, документы в оболочках, Perl и Ruby .
- Разновидности необработанных строк , обозначаемые префиксом строкового литерала с помощью
r
. Escape-последовательности не интерпретируются; следовательно, необработанные строки полезны там, где распространена буквальная обратная косая черта, например, в регулярных выражениях и Windows путях в стиле . (Сравнивать "@
-цитирование» в C# .)
- Разделяется одинарными или двойными кавычками; в отличие от оболочек Unix , Perl и языков, основанных на Perl, одинарные и двойные кавычки работают одинаково. Оба используют обратную косую черту (
- В Python есть индекс массива и выражения разделения массива в списках, обозначаемые как
a[key]
,a[start:stop]
илиa[start:stop:step]
. Индексы начинаются с нуля , а отрицательные индексы относятся к концу. Срезы берут элементы от начального индекса до стопового индекса, но не включая его. Третий параметр среза, называемый шагом или шагом , позволяет пропускать и реверсировать элементы. Индексы срезов могут быть опущены, например:a[:]
возвращает копию всего списка. Каждый элемент среза является мелкой копией .
В Python различие между выражениями и операторами жестко соблюдается, в отличие от таких языков, как Common Lisp , Scheme или Ruby . Это приводит к дублированию некоторых функций. Например:
- Понимание списков против.
for
-петли - Условные выражения против.
if
блоки - The
eval()
против.exec()
встроенные функции (в Python 2,exec
это заявление); первый предназначен для выражений, второй — для утверждений
Операторы не могут быть частью выражения, поэтому списки и другие выражения или лямбда-выражения , которые являются выражениями, не могут содержать операторы. Частным случаем является то, что оператор присваивания, такой как a = 1
не может составлять часть условного выражения условного оператора.
Методы [ править ]
Методы объектов — это функции, прикрепленные к классу объекта; синтаксис instance.method(argument)
для обычных методов и функций является синтаксическим сахаром для Class.method(instance, argument)
. Методы Python имеют явное self
параметр для доступа к данным экземпляра , в отличие от неявного self (или this
) в некоторых других объектно-ориентированных языках программирования (например, C++ , Java, Objective-C , Ruby ). [109] Python также предоставляет методы, часто называемые методами dunder (из-за того, что их имена начинаются и заканчиваются двойным подчеркиванием), позволяющие определяемым пользователем классам изменять способ их обработки собственными операциями, включая длину, сравнение, арифметические операции и преобразование типов. [110]
Набираю [ править ]
Python использует утиную типизацию и имеет типизированные объекты, но нетипизированные имена переменных. Ограничения типа не проверяются во время компиляции ; скорее, операции над объектом могут завершиться неудачно, что означает, что он не относится к подходящему типу. Несмотря на динамическую типизацию , Python является строго типизированным , запрещая операции, которые не определены четко (например, добавление числа к строке), вместо того, чтобы молча пытаться понять их смысл.
Python позволяет программистам определять свои собственные типы с помощью классов , чаще всего используемых для объектно-ориентированного программирования . Новые экземпляры классов создаются путем вызова класса (например, SpamClass()
или EggsClass()
), а классы являются экземплярами метакласса type
(сам по себе является экземпляром самого себя), позволяя метапрограммировать и рефлексировать .
До версии 3.0 в Python было два типа классов (оба использовали один и тот же синтаксис): старый стиль и новый стиль ; [111] текущие версии Python поддерживают только семантику нового стиля.
Python поддерживает необязательные аннотации типов . [4] [112] Эти аннотации не поддерживаются языком, но могут использоваться внешними инструментами, такими как mypy, для обнаружения ошибок. [113] [114] Mypy также поддерживает компилятор Python под названием mypyc, который использует аннотации типов для оптимизации. [115]
Тип | Мутабельность | Описание | Примеры синтаксиса |
---|---|---|---|
bool
|
неизменный | Логическое значение | True False
|
bytearray
|
изменчивый | Последовательность байтов | bytearray(b'Some ASCII') bytearray(b"Some ASCII") bytearray([119, 105, 107, 105])
|
bytes
|
неизменный | Последовательность байтов | b'Some ASCII' b"Some ASCII" bytes([119, 105, 107, 105])
|
complex
|
неизменный | Комплексное число с действительной и мнимой частями | 3+2.7j 3 + 2.7j
|
dict
|
изменчивый | Ассоциативный массив (или словарь) пар ключ-значение; может содержать смешанные типы (ключи и значения), ключи должны быть хешируемого типа | {'key1': 1.0, 3: False} {}
|
types.EllipsisType
|
неизменный | Заполнитель с многоточием, который будет использоваться в качестве индекса в NumPy. массивах | ... Ellipsis
|
float
|
неизменный | Число двойной точности с плавающей запятой . Точность зависит от машины, но на практике обычно реализуется как 64-битное число IEEE 754 с точностью 53 бита. [116] |
|
frozenset
|
неизменный | Неупорядоченный набор , не содержит дубликатов; может содержать смешанные типы, если они хешируются | frozenset([4.0, 'string', True])
|
int
|
неизменный | Целое число неограниченной величины [117] | 42
|
list
|
изменчивый | Список , может содержать смешанные типы | [4.0, 'string', True] []
|
types.NoneType
|
неизменный | Объект, представляющий отсутствие значения, часто называемый нулем. в других языках | None
|
types.NotImplementedType
|
неизменный | Заполнитель, который может быть возвращен перегруженными операторами для указания неподдерживаемых типов операндов. | NotImplemented
|
range
|
неизменный | Неизменяемая последовательность чисел, обычно используемая для повторения определенного количества раз в for петли [118]
|
range(-1, 10) range(10, -5, -2)
|
set
|
изменчивый | Неупорядоченный набор , не содержит дубликатов; может содержать смешанные типы, если они хешируются | {4.0, 'string', True} set()
|
str
|
неизменный | Строка символов : последовательность кодовых точек Юникода. | 'Wikipedia' "Wikipedia" """Spanning
multiple
lines"""
Spanning
multiple
lines
|
tuple
|
неизменный | Может содержать смешанные типы | (4.0, 'string', True) ('single element',) ()
|
Арифметические операции [ править ]
В Python есть обычные символы для арифметических операторов ( +
, -
, *
, /
), оператор поэтажного подразделения //
и операция по модулю %
(где остаток может быть отрицательным, например 4 % -3 == -2
). Он также имеет **
для возведения в степень , например 5**3 == 125
и 9**0.5 == 3.0
и оператор умножения матрицы @
. [119] Эти операторы работают как в традиционной математике; с теми же правилами приоритета операторы инфиксируют ( +
и -
также может быть унарным для представления положительных и отрицательных чисел соответственно).
Деление целых чисел дает результаты с плавающей запятой. Поведение деления со временем существенно изменилось: [120]
- Текущий Python (т.е. начиная с версии 3.0) изменен
/
всегда быть делением с плавающей запятой, например5/2 == 2.5
. - Этажное деление
//
был представлен оператор. Так7//3 == 2
,-7//3 == -3
,7.5//3 == 2.0
и-7.5//3 == -3.0
. Добавлениеfrom __future__ import division
заставляет модуль, используемый в Python 2.7, использовать для деления правила Python 3.0 (см. выше).
В терминах Python, /
истинное деление (или просто деление ), и //
это разделение этажей. /
до версии 3.0 это классическое деление . [120]
Округление в сторону отрицательной бесконечности, хотя и отличается от большинства языков, добавляет последовательности. Например, это означает, что уравнение (a + b)//b == a//b + 1
всегда верно. Это также означает, что уравнение b*(a//b) + a%b == a
справедливо как для положительных, так и для отрицательных значений a
. Однако сохранение справедливости этого уравнения означает, что, хотя результат a%b
находится, как и ожидалось, в полуинтервале [0, b ), где b
является положительным целым числом, оно должно лежать в интервале ( b , 0], когда b
является отрицательным. [121]
Python предоставляет round
функция округления числа с плавающей запятой до ближайшего целого числа. Для решения тай-брейка Python 3 использует округление до четности : round(1.5)
и round(2.5)
оба производят 2
. [122] В версиях до 3 использовалось округление от нуля : round(0.5)
является 1.0
, round(-0.5)
является −1.0
. [123]
Python допускает логические выражения с множественными отношениями равенства таким образом, который соответствует общему использованию в математике. Например, выражение a < b < c
проверяет, является ли a
меньше, чем b
и b
меньше, чем c
. [124] Языки, производные от C, интерпретируют это выражение по-другому: в C выражение сначала оценивает a < b
, что приводит к 0 или 1, и этот результат затем будет сравниваться с c
. [125]
Python использует арифметику произвольной точности для всех целочисленных операций. Decimal
тип/класс в decimal
Модуль предоставляет десятичные числа с плавающей запятой с заранее определенной произвольной точностью и несколькими режимами округления. [126] Fraction
класс в fractions
Модуль обеспечивает произвольную точность для рациональных чисел . [127]
Благодаря обширной математической библиотеке Python и сторонней библиотеке NumPy , которая еще больше расширяет встроенные возможности, он часто используется в качестве научного языка сценариев для решения таких задач, как обработка и манипулирование числовыми данными. [128] [129]
Примеры программирования [ править ]
print('Hello, world!')
Программа для вычисления факториала целого положительного числа:
n = int(input('Type a number, and its factorial will be printed: '))
if n < 0:
raise ValueError('You must enter a non-negative integer')
factorial = 1
for i in range(2, n + 1):
factorial *= i
print(factorial)
Библиотеки [ править ]
Большая стандартная библиотека Python [130] предоставляет инструменты, подходящие для многих задач, и его обычно называют одним из его самых сильных сторон. Для интернет-приложений многие стандартные форматы и протоколы, такие как MIME и HTTP поддерживаются . Включает модули для создания графических пользовательских интерфейсов , подключения к реляционным базам данных , генерации псевдослучайных чисел , арифметики с десятичными знаками произвольной точности, [126] манипулирование регулярными выражениями и модульное тестирование .
Некоторые части стандартной библиотеки покрываются спецификациями, например реализация интерфейса шлюза веб-сервера (WSGI). wsgiref
следует PEP 333 [131] — но большинство из них определяются своим кодом, внутренней документацией и наборами тестов . Однако, поскольку большая часть стандартной библиотеки представляет собой кроссплатформенный код Python, лишь несколько модулей требуют изменения или переписывания для различных реализаций.
По состоянию на 17 марта 2024 г. [update] Индекс пакетов Python (PyPI), официальный репозиторий стороннего программного обеспечения Python, содержит более 523 000 [132] пакеты с широким набором функциональных возможностей, в том числе:
- Автоматизация
- Аналитика данных
- Базы данных
- Документация
- Графические пользовательские интерфейсы
- Обработка изображений
- Машинное обучение
- Мобильные приложения
- Мультимедиа
- Компьютерные сети
- Научные вычисления
- Системное администрирование
- Тестовые фреймворки
- Обработка текста
- Веб-фреймворки
- Парсинг веб-страниц
Среды разработки [ править ]
Большинство реализаций Python (включая CPython) включают цикл чтения-оценки-печати (REPL), позволяющий им работать как интерпретатор командной строки , для которого пользователи вводят инструкции последовательно и немедленно получают результаты.
Python также поставляется с интегрированной средой разработки (IDE) под названием IDLE , которая больше ориентирована на новичков.
Другие оболочки, включая IDLE и IPython , добавляют дополнительные возможности, такие как улучшенное автозаполнение, сохранение состояния сеанса и подсветку синтаксиса .
Помимо стандартных настольных интегрированных сред разработки, включая PyCharm, IntelliJ Idea, Visual Studio Code и т. д., существуют веб-браузера IDE на базе , включая SageMath , для разработки программ, связанных с наукой и математикой; PythonAnywhere — браузерная IDE и среда хостинга; и Canopy IDE, коммерческая IDE, ориентированная на научные вычисления . [133]
Реализации [ править ]
Эталонная реализация [ править ]
CPython — эталонная реализация Python. Он написан на C и соответствует стандарту C89 (Python 3.11 использует C11). [134] ) с несколькими избранными функциями C99 . CPython включает в себя собственные расширения C, но расширения сторонних производителей не ограничиваются более старыми версиями C — например, они могут быть реализованы с помощью C11 или C++. [135] [136] CPython компилирует программы Python в промежуточный байт-код. [137] который затем выполняется на его виртуальной машине . [138] CPython распространяется с большой стандартной библиотекой, написанной на смеси C и собственного Python, и доступен для многих платформ, включая Windows (начиная с Python 3.9, установщик Python намеренно не устанавливается в Windows 7 и 8; [139] [140] Windows XP поддерживалась до Python 3.5) и большинство современных Unix-подобных систем, включая macOS (и Apple M1 Mac, начиная с Python 3.9.1, с экспериментальным установщиком), с неофициальной поддержкой VMS . [141] Переносимость платформы была одним из первых приоритетов компании. [142] (Во время разработки Python 1 и 2 даже OS/2 и Solaris , поддерживались [143] но с тех пор поддержка многих платформ была прекращена.)
Python, начиная с версии 3.7, поддерживает только операционные системы с поддержкой многопоточности.
Другие реализации [ править ]
- PyPy — это быстрый и совместимый интерпретатор Python 2.7 и 3.8. [144] [145] Его JIT-компилятор часто обеспечивает значительное улучшение скорости по сравнению с CPython, но некоторые библиотеки, написанные на C, с ним невозможно использовать. [146]
- Stackless Python — это значительная ветвь CPython, реализующая микропотоки ; он не использует стек вызовов таким же образом, что позволяет выполнять массовое одновременное выполнение программ. PyPy также имеет версию без стека. [147]
- MicroPython и CircuitPython — это варианты Python 3, оптимизированные для микроконтроллеров , включая Lego Mindstorms EV3 . [148]
- Pyston — это вариант среды выполнения Python, который использует своевременную компиляцию для ускорения выполнения программ Python. [149]
- Cinder — это ориентированная на производительность версия CPython 3.8, которая содержит ряд оптимизаций, включая встроенное кэширование байт-кода, быструю оценку сопрограмм, повременную JIT- программу и экспериментальный компилятор байт-кода. [150]
- Закуска [151] [152] [153] Встроенный язык вычислений (совместимый, например, с 8-битными микроконтроллерами AVR , такими как Arduino на базе ATmega 328P , а также с более крупными микроконтроллерами, совместимыми с MicroPython ) «вдохновлен Python, но это не Python. Можно писать программы Snek, которые работают в полной системе Python, но большинство программ Python не будут работать под Snek». [154] Это императивный язык, не включающий ООП /классы, в отличие от Python, и упрощающийся до одного числового типа с 32-битной одинарной точностью (аналогично JavaScript , но меньшего размера).
Неподдерживаемые реализации [ править ]
Были разработаны и другие JIT-компиляторы Python, но они сейчас не поддерживаются:
- Google начал проект под названием Unladen Swallow в 2009 году с целью ускорить работу интерпретатора Python в пять раз с помощью LLVM и улучшить его многопоточность при масштабировании до тысяч ядер. [155] в то время как обычные реализации страдают от глобальной блокировки интерпретатора .
- Psyco — это компилятор, работающий по принципу «точно в срок» специализированный , который интегрируется с CPython и преобразует байт-код в машинный код во время выполнения. Создаваемый код специализирован для определенных типов данных и работает быстрее, чем стандартный код Python. Psyco не поддерживает Python 2.7 и более поздних версий.
- PyS60 — интерпретатор Python 2 для мобильных телефонов Series 60, выпущенный Nokia в 2005 году. В нем реализованы многие модули из стандартной библиотеки и некоторые дополнительные модули для интеграции с операционной системой Symbian . Nokia N900 также поддерживает Python с библиотеками виджетов GTK , что позволяет писать и запускать программы на целевом устройстве. [156]
Кросс-компиляторы на другие языки [ править ]
Существует несколько компиляторов/ транспиляторов объектных языков высокого уровня, в которых в качестве исходного языка используется неограниченный Python, ограниченное подмножество Python или язык, аналогичный Python:
- Британский, [157] Транскриптовать [158] [159] и Pyjs (последняя версия 2012 года) компилируют Python в JavaScript .
- Codon компилирует подмножество статически типизированного Python. [160] в машинный код (через LLVM ) и поддерживает встроенную многопоточность. [161]
- Cython компилирует Python (расширенную версию) в C. Полученный код также можно использовать с Python посредством прямых вызовов API уровня C в интерпретатор Python.
- PyJL компилирует/транспилирует подмножество Python в «удобный для чтения, поддерживаемый и высокопроизводительный исходный код Julia». [86] Несмотря на заявления о высокой производительности, ни один инструмент не может претендовать на такую эффективность для произвольного кода Python; т.е. известно, что невозможно скомпилировать более быстрый язык или машинный код. Если не изменена семантика Python, но во многих случаях ускорение возможно с небольшими изменениями в коде Python или без них. Затем более быстрый исходный код Julia можно использовать из Python или скомпилировать в машинный код и использовать его таким образом.
- Nuitka компилирует Python в C. [162]
- Numba использует LLVM для компиляции подмножества Python в машинный код.
- Pythran компилирует подмножество Python 3 в C++ ( C++11 ). [163]
- RPython можно скомпилировать в C и использовать для создания интерпретатора Python PyPy.
- Транспилятор Python → 11l → C++ [164] компилирует подмножество Python 3 в C++ ( C++17 ).
Специализированные:
- MyHDL (HDL) на основе Python — это язык описания оборудования , который преобразует код MyHDL в Verilog или VHDL . код
Старые проекты (или не используемые с Python 3.x и новейшим синтаксисом):
- Grumpy от Google (последний выпуск 2017 года) транспилирует Python 2 в Go . [165] [166] [167]
- IronPython позволяет запускать программы Python 2.7 (а альфа- версия , выпущенная в 2021 году, также доступна для «Python 3.4, хотя могут быть включены функции и поведение из более поздних версий» [168] .NET ) в общеязыковой среде выполнения . [169]
- Jython компилирует Python 2.7 в байт-код Java, позволяя использовать библиотеки Java из программы Python. [170]
- Pyrex (последний выпуск 2010 г.) и Shed Skin (последний выпуск 2013 г.) компилируются в C и C++ соответственно.
Производительность [ править ]
Сравнение производительности различных реализаций Python при нечисловой (комбинаторной) рабочей нагрузке было представлено на выставке EuroSciPy '13. [171] Производительность Python по сравнению с другими языками программирования также оценивается с помощью игры The Computer Language Benchmarks Game . [172]
Развитие [ править ]
Разработка Python ведется в основном посредством процесса предложения по улучшению Python (PEP), основного механизма предложения основных новых функций, сбора мнений сообщества по проблемам и документирования решений по проектированию Python. [173] Стиль кодирования Python описан в PEP 8. [174] Выдающиеся PEP проверяются и комментируются сообществом Python и руководящим советом. [173]
Улучшение языка соответствует разработке эталонной реализации CPython. Список рассылки python-dev является основным форумом для разработки языка. Конкретные проблемы изначально обсуждались в Roundup системе отслеживания ошибок , размещенной на сайте фонда. [175] В 2022 году все вопросы и обсуждения были перенесены на GitHub . [176] Первоначально разработка велась в автономном репозитории исходного кода под управлением Mercurial , пока Python не переехал на GitHub в январе 2017 года. [177]
Публичные выпуски CPython делятся на три типа, различающиеся тем, какая часть номера версии увеличивается:
- Версии с обратной совместимостью, где ожидается, что код выйдет из строя и его необходимо переносить вручную . Первая часть номера версии увеличивается. Эти выпуски происходят нечасто — версия 3.0 вышла через 8 лет после версии 2.0. По мнению Гвидо ван Россума, появление версии 4.0 маловероятно. [178]
- Основные или «функциональные» выпуски в значительной степени совместимы с предыдущей версией, но содержат новые функции. Вторая часть номера версии увеличивается. Ожидается, что начиная с Python 3.9 эти выпуски будут выходить ежегодно. [179] [180] Каждая основная версия поддерживается исправлениями ошибок в течение нескольких лет после ее выпуска. [181]
- Выпуски исправлений ошибок, [182] которые не содержат новых функций, происходят примерно каждые 3 месяца и создаются, когда с момента последнего выпуска было исправлено достаточное количество ошибок. В этих выпусках также исправлены уязвимости безопасности. Третья и последняя часть номера версии увеличивается. [182]
Многие альфа-, бета-версии и кандидаты на выпуск также выпускаются в качестве предварительных версий и для тестирования перед финальными выпусками. Хотя для каждого выпуска существует приблизительный график, они часто откладываются, если код не готов. Команда разработчиков Python отслеживает состояние кода, запуская большой набор модульных тестов во время разработки. [183]
Крупнейшая научная конференция по Python — PyCon . Также существуют специальные программы наставничества по Python, например PyLadies .
Python 3.12 удален wstr
имеется в виду расширения Python [184] необходимо изменить, [185] и в версии 3.10 добавлено сопоставление шаблонов . в язык [186]
В 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 , среди других. [187]
Именование [ править ]
Название Python происходит от имени британской комедийной группы Monty Python , которой пользовался создатель Python Гвидо ван Россум при разработке языка. Ссылки на Монти Пайтон часто появляются в коде и культуре Python; [188] например, метасинтаксические переменные, часто используемые в литературе по Python, — это spam и egg вместо традиционных foo и bar . [188] [189] Официальная документация Python также содержит различные ссылки на подпрограммы Monty Python. [190] [191] Пользователей Python иногда называют «Pythonistas». [192]
Префикс Py- используется, чтобы показать, что что-то связано с Python. Примеры использования этого префикса в именах приложений или библиотек Python включают к Python ( обычно Pygame — привязку SDL используемую для создания игр); PyQt и PyGTK , которые связывают Qt и GTK с Python соответственно; и PyPy — реализация Python, изначально написанная на Python.
Популярность [ править ]
С 2003 года Python стабильно входит в десятку самых популярных языков программирования в индексе сообщества программистов TIOBE , где по состоянию на декабрь 2022 г. [update] это был самый популярный язык (опередивший C, C++ и Java ). [40] Он был выбран языком программирования года (за «самый высокий рост рейтингов за год») в 2007, 2010, 2018 и 2020 годах (единственный язык, который сделал это четыре раза по состоянию на 2020 год). [update][193] ).
Крупные организации, использующие Python, включают Wikipedia , Google , [194] Yahoo! , [195] ЦЕРН , [196] НАСА , [197] Фейсбук , [198] Амазон , Инстаграм , [199] Спотифай , [200] и некоторые более мелкие организации, такие как ILM [201] и ИТА . [202] Социальная новостная сеть Reddit была написана в основном на Python. [203]
Использует [ править ]
Python может служить языком сценариев для веб-приложений , например, через mod_wsgi для веб-сервера Apache . [204] С интерфейсом шлюза веб-сервера стандартный API был разработан для облегчения работы этих приложений. Веб-фреймворки, такие как Django , Pylons , Pyramid , TurboGears , web2py , Tornado , Flask , Bottle и Zope , помогают разработчикам проектировать и поддерживать сложные приложения. Pyjs и IronPython можно использовать для разработки клиентских приложений на основе Ajax. SQLAlchemy можно использовать в качестве преобразователя данных в реляционную базу данных. Twisted — это платформа для программирования связи между компьютерами, которая используется (например) Dropbox .
Такие библиотеки, как NumPy , SciPy и Matplotlib, позволяют эффективно использовать Python в научных вычислениях. [205] [206] со специализированными библиотеками, такими как Biopython и Astropy, обеспечивающими функциональность, специфичную для предметной области. SageMath — система компьютерной алгебры с интерфейсом ноутбука , программируемым на Python: ее библиотека охватывает многие аспекты математики , включая алгебру , комбинаторику , числовую математику , теорию чисел и исчисление . [207] OpenCV имеет привязки Python с богатым набором функций для компьютерного зрения и обработки изображений . [208]
Python обычно используется в проектах искусственного интеллекта и проектах машинного обучения с помощью таких библиотек, как TensorFlow , Keras , Pytorch , scikit-learn и языка логики ProbLog . [209] [210] [211] [212] [213] Python как язык сценариев с модульной архитектурой , простым синтаксисом и богатыми инструментами обработки текста часто используется для обработки естественного языка . [214]
Комбинация Python и Prolog оказалась особенно полезной для приложений искусственного интеллекта, поскольку Prolog обеспечивает представление знаний и возможности рассуждения. Система Янус, в частности, использует сходство между этими двумя языками. отчасти из-за использования динамической типизации и простой рекурсивной природы их структуры данных. Типичные применения этой комбинации включают обработку естественного языка, визуальные запросы. ответы, геопространственные рассуждения и обработка семантических веб-данных. [215] [216] Система Natlog, реализованная на Python, использует грамматики определенных предложений (DCG) в качестве генераторов подсказок для генераторов преобразования текста в текст, таких как GPT3, и генераторов преобразования текста в изображение, таких как DALL-E или Stable Diffusion. [217]
Python также можно использовать для графического пользовательского интерфейса (GUI) с помощью таких библиотек, как Tkinter . [218] [219]
Python был успешно встроен во многие программные продукты в качестве языка сценариев, в том числе в программное обеспечение для метода конечных элементов , такое как Abaqus , средства параметрического 3D-моделирования, такие как FreeCAD , пакеты 3D-анимации, такие как 3ds Max , Blender , Cinema 4D , Lightwave , Houdini , Maya , modo. , MotionBuilder , Softimage , наборщик визуальных эффектов Nuke , программы 2D-изображений, такие как GIMP , [220] Inkscape , Scribus и Paint Shop Pro , [221] и нотной записи, программы такие как партитура и капелла . GNU Debugger использует Python как красивый принтер для отображения сложных структур, таких как контейнеры C++. Esri пропагандирует Python как лучший выбор для написания скриптов в ArcGIS . [222] Он также использовался в нескольких видеоиграх. [223] [224] и был принят в качестве первого из трех доступных языков программирования в Google App Engine , двумя другими являются Java и Go . [225]
Многие операционные системы включают Python в качестве стандартного компонента. Он поставляется с большинством дистрибутивов Linux . [226] AmigaOS 4 (с использованием Python 2.7), FreeBSD (в виде пакета), NetBSD и OpenBSD (в виде пакета) и может использоваться из командной строки (терминала). Многие дистрибутивы Linux используют установщики, написанные на Python: Ubuntu использует установщик Ubiquity , а Red Hat Linux и Fedora Linux используют установщик Anaconda . Gentoo Linux использует Python в своей системе управления пакетами Portage .
Python широко используется в индустрии информационной безопасности , в том числе при разработке эксплойтов. [227] [228]
Большая часть программного обеспечения Sugar для одного ноутбука на ребенка XO, разработанного в Sugar Labs по состоянию на 2008 год. [update], написан на Python. [229] В проекте Raspberry Pi одноплатного компьютера Python был принят в качестве основного языка пользовательского программирования.
LibreOffice включает Python и намерен заменить Java на Python. Его поставщик сценариев Python является основной функцией. [230] начиная с версии 4.0 от 7 февраля 2013 г.
влиянием Python под Языки
Дизайн и философия Python повлияли на многие другие языки программирования:
- Boo использует отступы, аналогичный синтаксис и аналогичную объектную модель. [231]
- Cobra использует отступы и аналогичный синтаксис, а в ее документе «Благодарности» Python стоит на первом месте среди языков, оказавших на него влияние. [232]
- CoffeeScript , язык программирования, который кросс-компилируется в JavaScript, имеет синтаксис, вдохновленный Python.
- ECMAScript — JavaScript заимствовал итераторы и генераторы из Python. [233]
- GDScript — язык сценариев, очень похожий на Python, встроенный в игровой движок Godot . [234]
- Go создан для «скорости работы на таком динамическом языке, как Python». [235] и использует тот же синтаксис для нарезки массивов.
- Groovy руководствовался желанием перенести философию проектирования Python в Java . [236]
- Джулия была разработана так, чтобы быть «такой же пригодной для общего программирования, как и Python». [28]
- Mojo — нестрогий [29] [237] расширенный набор Python (например, все еще отсутствуют классы и добавлено, например, struct ). [238]
- Ним использует отступы и аналогичный синтаксис. [239]
- Юкихиро Создатель Ruby Мацумото сказал: «Мне нужен был язык сценариев, который был бы более мощным, чем Perl, и более объектно-ориентированным, чем Python. Вот почему я решил разработать свой собственный язык». [240]
- Swift , язык программирования, разработанный Apple, имеет синтаксис, вдохновленный Python. [241]
- Kotlin сочетает в себе функции Python и Java, минимизируя шаблонный код для повышения эффективности разработки. [242]
Практика разработки Python также была эмулирована другими языками. Например, практика требования документа, описывающего обоснование и проблемы, связанные с изменением языка (в Python, PEP), также используется в Tcl . [243] Эрланг , [244] и Свифт. [245]
См. также [ править ]
- Синтаксис и семантика Python
- пип (менеджер пакетов)
- Список языков программирования
- История языков программирования
- Сравнение языков программирования
Ссылки [ править ]
- ^ «Общие часто задаваемые вопросы по Python — документация по Python 3.9.2» . docs.python.org . Архивировано из оригинала 24 октября 2012 года . Проверено 28 марта 2021 г.
- ^ «Python 0.9.1 часть 21.01» . Архивы alt.sources. Архивировано из оригинала 11 августа 2021 года . Проверено 11 августа 2021 г.
- ^ «Почему Python является динамическим языком, а также строго типизированным языком» . Питон Вики . Архивировано из оригинала 14 марта 2021 года . Проверено 27 января 2021 г.
- ^ Перейти обратно: а б «PEP 483 – Теория подсказок типов» . Python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 14 июня 2018 г.
- ^ «PEP 11 — поддержка платформы CPython | peps.python.org» . Предложения по улучшению Python (PEP) . Проверено 22 апреля 2024 г.
- ^ «PEP 738 – Добавление Android в качестве поддерживаемой платформы | peps.python.org» . Предложения по улучшению Python (PEP) . Проверено 19 мая 2024 г.
- ^ «Загрузить Python для других платформ» . Python.org . Архивировано из оригинала 27 ноября 2020 года . Проверено 18 августа 2023 г.
- ^ «test — Пакет регрессионных тестов для Python — документация Python 3.7.13» . docs.python.org . Архивировано из оригинала 17 мая 2022 года . Проверено 17 мая 2022 г.
- ^ «платформа — доступ к идентификационным данным базовой платформы — документация Python 3.10.4» . docs.python.org . Архивировано из оригинала 17 мая 2022 года . Проверено 17 мая 2022 г.
- ^ Холт, Мур (30 марта 2014 г.). «PEP 0441 — Улучшение поддержки приложений Python ZIP» . Архивировано из оригинала 26 декабря 2018 года . Проверено 12 ноября 2015 г.
- ^ «Язык звездных жаворонков» . Архивировано из оригинала 15 июня 2020 года . Проверено 25 мая 2019 г.
- ^ Перейти обратно: а б «Почему вообще был создан Python?» . Общие часто задаваемые вопросы по Python . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 22 марта 2007 г.
У меня был обширный опыт внедрения интерпретируемого языка в группе ABC в CWI, и, работая с этой группой, я многому научился в области языкового проектирования. Это источник многих возможностей Python, включая использование отступов для группировки операторов и включение типов данных очень высокого уровня (хотя в Python все детали разные).
- ^ «Справочное руководство по Ada 83 (оператор повышения)» . Архивировано из оригинала 22 октября 2019 года . Проверено 7 января 2020 г.
- ^ Перейти обратно: а б Кучлинг, Эндрю М. (22 декабря 2006 г.). «Интервью с Гвидо ван Россумом (июль 1998 г.)» . amk.ca. Архивировано из оригинала 1 мая 2007 года . Проверено 12 марта 2012 г.
Я провел лето в Центре системных исследований DEC, где я познакомился с Модулой-2+; Примерно в то же время там писался итоговый отчет «Модулы-3». То, что я узнал там позже, проявилось в обработке исключений Python, модулях и том факте, что методы явно содержат «self» в своем списке параметров. Нарезка строк пришла из Algol-68 и Icon.
- ^ Перейти обратно: а б с «itertools — Функции, создающие итераторы для эффективного циклирования — документация Python 3.7.1» . docs.python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 22 ноября 2016 г.
Этот модуль реализует ряд строительных блоков итераторов, вдохновленных конструкциями из APL, Haskell и SML.
- ^ ван Россум, Гвидо (1993). «Введение в Python для программистов UNIX/C». Материалы конференции NLUUG Najaarsconferentie (Голландская группа пользователей UNIX) . CiteSeerX 10.1.1.38.2023 .
хотя конструкция C далека от идеала, его влияние на Python значительно.
- ^ Перейти обратно: а б «Классы» . Учебник по Python . Фонд программного обеспечения Python. Архивировано из оригинала 23 октября 2012 года . Проверено 20 февраля 2012 г.
Это смесь механизмов классов, имеющихся в C++ и Modula-3.
- ^ Лунд, Фредрик. «Вызов по объекту» . effbot.org . Архивировано из оригинала 23 ноября 2019 года . Проверено 21 ноября 2017 г.
замените «CLU» на «Python», «запись» на «экземпляр» и «процедуру» на «функцию или метод», и вы получите довольно точное описание объектной модели Python.
- ^ Симионато, Микеле. «Порядок разрешения методов Python 2.3» . Фонд программного обеспечения Python. Архивировано из оригинала 20 августа 2020 года . Проверено 29 июля 2014 г.
Сам метод C3 не имеет ничего общего с Python, так как его придумали люди, работавшие над Диланом, и он описан в статье, предназначенной для шепелявителей.
- ^ Кучлинг А.М. «HOWTO по функциональному программированию» . Документация Python v2.7.2 . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 9 февраля 2012 года .
Понимание списков и выражения-генераторы [...] представляют собой краткое обозначение таких операций, заимствованное из функционального языка программирования Haskell.
- ^ Шеменауэр, Нил; Питерс, Тим; Хетланд, Магнус Ли (18 мая 2001 г.). «PEP 255 – Простые генераторы» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 9 февраля 2012 года .
- ^ «Дополнительные инструменты потока управления» . Документация Python 3 . Фонд программного обеспечения Python. Архивировано из оригинала 4 июня 2016 года . Проверено 24 июля 2015 г.
По многочисленным просьбам в Python были добавлены несколько функций, обычно встречающихся в языках функционального программирования, таких как Lisp. С помощью ключевого слова лямбда можно создавать небольшие анонимные функции.
- ^ «re – Операции с регулярными выражениями – Документация Python 3.10.6» . docs.python.org . Архивировано из оригинала 18 июля 2018 года . Проверено 6 сентября 2022 г.
Этот модуль предоставляет операции сопоставления регулярных выражений, аналогичные тем, которые есть в Perl.
- ^ «КофеСкрипт» . Coffeescript.org . Архивировано из оригинала 12 июня 2020 года . Проверено 3 июля 2018 г.
- ^ «Учебник по языку программирования Genie» . Архивировано из оригинала 1 июня 2020 года . Проверено 28 февраля 2020 г. .
- ^ «Влияние Perl и Python на JavaScript» . www.2ality.com . 24 февраля 2013 г. Архивировано из оригинала 26 декабря 2018 г. Проверено 15 мая 2015 г.
- ^ Раушмайер, Аксель. «Глава 3: Природа JavaScript; влияние» . О’Рейли, «Говорим на JavaScript» . Архивировано из оригинала 26 декабря 2018 года . Проверено 15 мая 2015 г.
- ^ Перейти обратно: а б «Почему мы создали Джулию» . Сайт Юлии . Февраль 2012 г. Архивировано из оригинала 2 мая 2020 г. . Проверено 5 июня 2014 г.
Нам нужно что-то столь же пригодное для общего программирования, как Python [...]
- ^ Перейти обратно: а б Криль, Пол (4 мая 2023 г.). «Язык Mojo объединяет Python и MLIR для разработки искусственного интеллекта» . Инфомир . Архивировано из оригинала 5 мая 2023 года . Проверено 5 мая 2023 г.
- ^ Команда Ринг (4 декабря 2017 г.). «Кольцо и другие языки» . Ring-lang.net . язык звонка . Архивировано из оригинала 25 декабря 2018 года . Проверено 4 декабря 2017 г.
- ^ Бини, Ола (2007). Практические проекты JRuby on Rails Web 2.0: перенос Ruby on Rails на платформу Java . Беркли: APress. п. 3 . ISBN 978-1-59059-881-8 .
- ^ Латтнер, Крис (3 июня 2014 г.). «Домашняя страница Криса Лэттнера» . Крис Лэттнер. Архивировано из оригинала 25 декабря 2018 года . Проверено 3 июня 2014 г.
Язык Swift — это продукт неустанных усилий команды языковых экспертов, гуру документации, ниндзя по оптимизации компиляторов и невероятно важной внутренней экспериментальной группы, которая предоставляла отзывы, помогающие совершенствовать и проверять идеи. Конечно, он также получил большую пользу от опыта, с трудом полученного многими другими языками в этой области, черпая идеи из Objective-C, Rust, Haskell, Ruby, Python, C#, CLU и многих других, чтобы их перечислять.
- ^ Кульман, Дэйв. «Книга Python: Начало Python, продвинутый уровень Python и упражнения по Python» . Раздел 1.1. Архивировано из оригинала (PDF) 23 июня 2012 года.
- ^ «О Питоне» . Фонд программного обеспечения Python. Архивировано из оригинала 20 апреля 2012 года . Проверено 24 апреля 2012 г. , второй раздел «Поклонники Python используют фразу «батарейки в комплекте» для описания стандартной библиотеки, которая охватывает все: от асинхронной обработки до zip-файлов».
- ^ «PEP 206 — Расширенная библиотека Python» . Python.org . Архивировано из оригинала 5 мая 2021 года . Проверено 11 октября 2021 г.
- ^ Россум, Гвидо Ван (20 января 2009 г.). «История Python: краткая хронология Python» . История Питона . Архивировано из оригинала 5 июня 2020 года . Проверено 5 марта 2021 г.
- ^ Петерсон, Бенджамин (20 апреля 2020 г.). «Python 2.7.18, последняя версия Python 2» . Инсайдер Python . Архивировано из оригинала 26 апреля 2020 года . Проверено 27 апреля 2020 г.
- ^ «Опрос разработчиков Stack Overflow, 2022 год» . Переполнение стека . Архивировано из оригинала 27 июня 2022 года . Проверено 12 августа 2022 г.
- ^ «Состояние экосистемы разработчиков в 2020 году, инфографика» . JetBrains: инструменты разработчика для профессионалов и команд . Архивировано из оригинала 1 марта 2021 года . Проверено 5 марта 2021 г.
- ^ Перейти обратно: а б «Индекс ТИОБЕ» . ТИОБЕ. Архивировано из оригинала 25 февраля 2018 года . Проверено 3 января 2023 г.
Индекс сообщества программистов TIOBE — индикатор популярности языков программирования
. Обновляется по мере необходимости. - ^ «Индекс популярности языков программирования PYPL» . pypl.github.io . Архивировано из оригинала 14 марта 2017 года . Проверено 26 марта 2021 г.
- ^ Перейти обратно: а б Веннерс, Билл (13 января 2003 г.). «Создание Python» . Разработчик Артима . Артима. Архивировано из оригинала 1 сентября 2016 года . Проверено 22 марта 2007 г.
- ^ ван Россум, Гвидо (29 августа 2000 г.). «SETL (был: вяло относился к литералам диапазона)» . Python-Dev (список рассылки). Архивировано из оригинала 14 июля 2018 года . Проверено 13 марта 2011 г.
- ^ ван Россум, Гвидо (20 января 2009 г.). «Краткая хронология Python» . История Питона . Архивировано из оригинала 5 июня 2020 года . Проверено 20 января 2009 г.
- ^ Фэйрчайлд, Карли (12 июля 2018 г.). «Гвидо ван Россум уходит с роли пожизненного великодушного диктатора Питона» . Linux-журнал . Архивировано из оригинала 13 июля 2018 года . Проверено 13 июля 2018 г.
- ^ «ПЭП 8100» . Фонд программного обеспечения Python. Архивировано из оригинала 4 июня 2020 года . Проверено 4 мая 2019 г.
- ^ «PEP 13 — Управление языком Python» . Python.org . Архивировано из оригинала 27 мая 2021 года . Проверено 25 августа 2021 г.
- ^ Кучлинг, AM; Задка, Моше (16 октября 2000 г.). «Что нового в Python 2.0» . Фонд программного обеспечения Python. Архивировано из оригинала 23 октября 2012 года . Проверено 11 февраля 2012 г.
- ^ ван Россум, Гвидо (5 апреля 2006 г.). «PEP 3000 – Python 3000» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 3 марта 2016 года . Проверено 27 июня 2009 г.
- ^ «2to3 — Автоматический перевод кода Python 2 в 3» . docs.python.org . Архивировано из оригинала 4 июня 2020 года . Проверено 2 февраля 2021 г.
- ^ «PEP 373 — График выпуска Python 2.7» . python.org . Архивировано из оригинала 19 мая 2020 года . Проверено 9 января 2017 г.
- ^ «PEP 466 — Улучшения сетевой безопасности для Python 2.7.x» . python.org . Архивировано из оригинала 4 июня 2020 года . Проверено 9 января 2017 г.
- ^ «Закат Python 2» . Python.org . Архивировано из оригинала 12 января 2020 года . Проверено 22 сентября 2019 г.
- ^ «PEP 373 — График выпуска Python 2.7» . Python.org . Архивировано из оригинала 13 января 2020 года . Проверено 22 сентября 2019 г.
- ^ «Выпуск Python 3.7.17» . Python.org . Архивировано из оригинала 31 июля 2023 года . Проверено 18 августа 2023 г.
- ^ маттип (25 декабря 2023 г.). «Выпуск PyPy v7.3.14» . ПиПи . Архивировано из оригинала 5 января 2024 года . Проверено 5 января 2024 г.
- ^ «CVE-2021-3177» . Портал для клиентов Red Hat . Архивировано из оригинала 6 марта 2021 года . Проверено 26 февраля 2021 г.
- ^ «CVE-2021-3177» . КВЭ . Архивировано из оригинала 27 февраля 2021 года . Проверено 26 февраля 2021 г.
- ^ «CVE-2021-23336» . КВЭ . Архивировано из оригинала 24 февраля 2021 года . Проверено 26 февраля 2021 г.
- ^ Ланга, Лукаш (24 марта 2022 г.). «Python 3.10.4 и 3.9.12 теперь доступны вне графика» . Инсайдер Python . Архивировано из оригинала 21 апреля 2022 года . Проверено 19 апреля 2022 г.
- ^ Ланга, Лукаш (16 марта 2022 г.). «Python 3.10.3, 3.9.11, 3.8.13 и 3.7.13 теперь доступны с контентом безопасности» . Инсайдер Python . Архивировано из оригинала 17 апреля 2022 года . Проверено 19 апреля 2022 г.
- ^ Ланга, Лукаш (17 мая 2022 г.). «Python 3.9.13 теперь доступен» . Инсайдер Python . Архивировано из оригинала 17 мая 2022 года . Проверено 21 мая 2022 г.
- ^ Ланга, Лукаш (7 сентября 2022 г.). «Выпуски Python 3.10.7, 3.9.14, 3.8.14 и 3.7.14 теперь доступны» . Инсайдер Python . Архивировано из оригинала 13 сентября 2022 года . Проверено 16 сентября 2022 г.
- ^ «CVE-2020-10735» . КВЭ . Архивировано из оригинала 20 сентября 2022 года . Проверено 16 сентября 2022 г.
- ^ корбет (24 октября 2022 г.). «Выпущен Python 3.11 [LWN.net]» . lwn.net . Проверено 15 ноября 2022 г.
- ^ «Питон» . конецжизни.дата . 10 августа 2023 года. Архивировано из оригинала 18 сентября 2021 года . Проверено 15 августа 2023 г.
- ^ «Что нового в Python 3.13» . Документация Python . Проверено 30 апреля 2024 г.
- ^ Воутерс, Томас (9 апреля 2024 г.). «Python Insider: выпущены Python 3.12.3 и 3.13.0a6» . Инсайдер Python . Проверено 29 апреля 2024 г.
- ^ Компания Cain Gang Ltd. «Метаклассы Python: кто? Почему? Когда?» (PDF) . Архивировано из оригинала (PDF) 30 мая 2009 года . Проверено 27 июня 2009 г.
- ^ «3.3. Специальные имена методов» . Справочник по языку Python . Фонд программного обеспечения Python. Архивировано из оригинала 15 декабря 2018 года . Проверено 27 июня 2009 г.
- ^ «PyDBC: предусловия метода, постусловия метода и инварианты классов для Python» . Архивировано из оригинала 23 ноября 2019 года . Проверено 24 сентября 2011 г.
- ^ «Контракты для Python» . Архивировано из оригинала 15 июня 2020 года . Проверено 24 сентября 2011 г.
- ^ «Пидаталог» . Архивировано из оригинала 13 июня 2020 года . Проверено 22 июля 2012 г.
- ^ «Расширение и встраивание интерпретатора Python: подсчет ссылок» . Документы.python.org. Архивировано из оригинала 18 октября 2012 года . Проверено 5 июня 2020 г.
Поскольку Python активно использует
malloc()
иfree()
, ему нужна стратегия, позволяющая избежать утечек памяти, а также использовать освобожденную память. Выбранный метод называется подсчетом ссылок . - ^ Перейти обратно: а б Хеттингер, Раймонд (30 января 2002 г.). «PEP 289 — Генерирующие выражения» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 14 июня 2020 года . Проверено 19 февраля 2012 г.
- ^ «6.5 itertools — Функции, создающие итераторы для эффективного цикла» . Документы.python.org. Архивировано из оригинала 14 июня 2020 года . Проверено 22 ноября 2016 г.
- ^ Перейти обратно: а б Питерс, Тим (19 августа 2004 г.). «PEP 20 – Дзен Python» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 26 декабря 2018 года . Проверено 24 ноября 2008 г.
- ^ Лутц, Марк (январь 2022 г.). «Изменения Python 2014+» . Изучение Питона . Архивировано из оригинала 15 марта 2024 года . Проверено 25 февраля 2024 г.
- ^ Томас, Робин (3 мая 2023 г.). «Python — не лучший язык программирования» . GitHub суть . Архивировано из оригинала 31 декабря 2023 года . Проверено 25 февраля 2024 г.
- ^ «Путаница относительно правила в «Дзен Python»» . Справка по Python — обсуждения на Python.org . 3 мая 2022 г. Архивировано из оригинала 25 февраля 2024 г. Проверено 25 февраля 2024 г.
- ^ Амби, Четан (4 июля 2021 г.). «Самый противоречивый оператор Python Walrus» . Python упрощенный . Архивировано из оригинала 27 августа 2023 года . Проверено 5 февраля 2024 г.
- ^ Грифски, Джереми (24 мая 2020 г.). «Споры об операторе Walrus в Python» . Кодер-отступник . Архивировано из оригинала 28 декабря 2023 года . Проверено 25 февраля 2024 г.
- ^ Бадер, Дэн. «Рекомендации по форматированию строк в Python» . Настоящий Питон . Архивировано из оригинала 18 февраля 2024 года . Проверено 25 февраля 2024 г.
- ^ Мартелли, Алекс; Рэйвенскрофт, Анна; Ашер, Дэвид (2005). Поваренная книга Python, 2-е издание . О'Рейли Медиа . п. 230. ИСБН 978-0-596-00797-3 . Архивировано из оригинала 23 февраля 2020 года . Проверено 14 ноября 2015 г.
- ^ «Питонская культура» . ебеб . 21 января 2014 г. Архивировано из оригинала 30 января 2014 г.
- ^ Перейти обратно: а б «Транспиляция Python в Julia с использованием PyJL» (PDF) . Архивировано (PDF) из оригинала 19 ноября 2023 года . Проверено 20 сентября 2023 г.
После ручной модификации одной строки кода путем указания необходимой информации о типе мы получили ускорение в 52,6 раза, в результате чего переведенный код Julia стал в 19,5 раза быстрее, чем исходный код Python.
- ^ «Почему он называется Python?» . Общие часто задаваемые вопросы по Python . Документы.python.org. Архивировано из оригинала 24 октября 2012 года . Проверено 3 января 2023 г.
- ^ «15 причин, по которым Python является мощной силой в Интернете» . Архивировано из оригинала 11 мая 2019 года . Проверено 3 июля 2018 г.
- ^ «pprint — Принтер данных — Документация Python 3.11.0» . docs.python.org . Архивировано из оригинала 22 января 2021 года . Проверено 5 ноября 2022 г.
материал=['спам', 'яйца', 'лесоруб', 'рыцари', 'ни']
- ^ «Стиль кода — Путеводитель по Python для путешествующих автостопом» . docs.python-guide.org . Архивировано из оригинала 27 января 2021 года . Проверено 20 января 2021 г.
- ^ «Является ли Python хорошим языком для начинающих программистов?» . Общие часто задаваемые вопросы по Python . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 21 марта 2007 г.
- ^ «Мифы об отступах в Python» . Secnetix.de. Архивировано из оригинала 18 февраля 2018 года . Проверено 19 апреля 2011 г.
- ^ Гуттаг, Джон В. (12 августа 2016 г.). Введение в вычисления и программирование с использованием Python: с применением к пониманию данных . МТИ Пресс. ISBN 978-0-262-52962-4 .
- ^ «PEP 8 – Руководство по стилю для кода Python» . Python.org . Архивировано из оригинала 17 апреля 2019 года . Проверено 26 марта 2019 г.
- ^ «8. Ошибки и исключения — документация Python 3.12.0a0» . docs.python.org . Архивировано из оригинала 9 мая 2022 года . Проверено 9 мая 2022 г.
- ^ «Основные моменты: Python 2.5» . Python.org . Архивировано из оригинала 4 августа 2019 года . Проверено 20 марта 2018 г.
- ^ ван Россум, Гвидо (22 апреля 2009 г.). «Устранение хвостовой рекурсии» . Neopythonic.blogspot.be. Архивировано из оригинала 19 мая 2018 года . Проверено 3 декабря 2012 г.
- ^ ван Россум, Гвидо (9 февраля 2006 г.). «Языковой дизайн – это не просто решение головоломок» . Форумы Артимы . Артима. Архивировано из оригинала 17 января 2020 года . Проверено 21 марта 2007 г.
- ^ ван Россум, Гвидо; Эби, Филип Дж. (10 мая 2005 г.). «PEP 342 – Сопрограммы через расширенные генераторы» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 29 мая 2020 года . Проверено 19 февраля 2012 г.
- ^ «ПЭП 380» . Python.org. Архивировано из оригинала 4 июня 2020 года . Проверено 3 декабря 2012 г.
- ^ "разделение" . python.org . Архивировано из оригинала 20 июля 2006 года . Проверено 30 июля 2014 г.
- ^ «PEP 0465 — специальный инфиксный оператор для умножения матриц» . python.org . Архивировано из оригинала 4 июня 2020 года . Проверено 1 января 2016 г.
- ^ «Выпуск Python 3.5.1 и журнал изменений» . python.org . Архивировано из оригинала 14 мая 2020 года . Проверено 1 января 2016 г.
- ^ «Что нового в Python 3.8» . Архивировано из оригинала 8 июня 2020 года . Проверено 14 октября 2019 г.
- ^ ван Россум, Гвидо; Хеттингер, Раймонд (7 февраля 2003 г.). «PEP 308 – Условные выражения» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 13 марта 2016 года . Проверено 13 июля 2011 г.
- ^ «4. Встроенные типы — документация Python 3.6.3rc1» . python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 1 октября 2017 г.
- ^ «5.3. Кортежи и последовательности — документация Python 3.7.1rc2» . python.org . Архивировано из оригинала 10 июня 2020 года . Проверено 17 октября 2018 г.
- ^ Перейти обратно: а б «PEP 498 — Интерполяция буквальных строк» . python.org . Архивировано из оригинала 15 июня 2020 года . Проверено 8 марта 2017 г.
- ^ «Почему слово «self» должно использоваться явно в определениях и вызовах методов?» . Часто задаваемые вопросы по дизайну и истории . Фонд программного обеспечения Python. Архивировано из оригинала 24 октября 2012 года . Проверено 19 февраля 2012 г.
- ^ Свейгарт, Эл (2020). Помимо базовых знаний о Python: лучшие практики написания чистого кода . Нет крахмального пресса. п. 322. ИСБН 978-1-59327-966-0 . Архивировано из оригинала 13 августа 2021 года . Проверено 7 июля 2021 г.
- ^ «Справочник по языку Python, раздел 3.3. Классы нового и классического стиля для версии 2.7.1» . Архивировано из оригинала 26 октября 2012 года . Проверено 12 января 2011 г.
- ^ «PEP 484 — Подсказки типов | peps.python.org» . peps.python.org . Архивировано из оригинала 27 ноября 2023 года . Проверено 29 ноября 2023 г.
- ^ «печать — Поддержка подсказок по типу» . Документация Python . Фонд программного обеспечения Python. Архивировано из оригинала 21 февраля 2020 года . Проверено 22 декабря 2023 г.
- ^ «mypy — дополнительная статическая типизация для Python» . Архивировано из оригинала 6 июня 2020 года . Проверено 28 января 2017 г.
- ^ "Введение" . mypyc.readthedocs.io . Архивировано из оригинала 22 декабря 2023 года . Проверено 22 декабря 2023 г.
- ^ «15. Арифметика с плавающей запятой: проблемы и ограничения — документация Python 3.8.3» . docs.python.org . Архивировано из оригинала 6 июня 2020 года . Проверено 6 июня 2020 г.
Почти все машины сегодня (ноябрь 2000 г.) используют арифметику с плавающей запятой IEEE-754, и почти все платформы отображают числа с плавающей запятой Python в IEEE-754 «двойной точности».
- ^ Задка, Моше; ван Россум, Гвидо (11 марта 2001 г.). «PEP 237 – Объединение длинных и целых чисел» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 28 мая 2020 года . Проверено 24 сентября 2011 г.
- ^ «Встроенные типы» . Архивировано из оригинала 14 июня 2020 года . Проверено 3 октября 2019 г.
- ^ «PEP 465 — специальный инфиксный оператор для умножения матриц» . python.org . Архивировано из оригинала 29 мая 2020 года . Проверено 3 июля 2018 г.
- ^ Перейти обратно: а б Задка, Моше; ван Россум, Гвидо (11 марта 2001 г.). «PEP 238 – Смена оператора подразделения» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 28 мая 2020 года . Проверено 23 октября 2013 г.
- ^ «Почему Python использует этажи с целочисленным делением» . 24 августа 2010 г. Архивировано из оригинала 5 июня 2020 г. . Проверено 25 августа 2010 г.
- ^ «round» , Стандартная библиотека Python, выпуск 3.2, §2: Встроенные функции , заархивировано из оригинала 25 октября 2012 г. , получено 14 августа 2011 г.
- ^ «round» , Стандартная библиотека Python, выпуск 2.7, §2: Встроенные функции , заархивировано из оригинала 27 октября 2012 г. , получено 14 августа 2011 г.
- ^ Бизли, Дэвид М. (2009). Основной справочник Python (4-е изд.). Аддисон-Уэсли Профессионал. п. 66 . ISBN 9780672329784 .
- ^ Керниган, Брайан В.; Ричи, Деннис М. (1988). Язык программирования C (2-е изд.). п. 206 .
- ^ Перейти обратно: а б Батиста, Факундо (17 октября 2003 г.). «PEP 327 — Десятичный тип данных» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 4 июня 2020 года . Проверено 24 ноября 2008 г.
- ^ «Что нового в Python 2.6» . Документация Python v2.6.9 . 29 октября 2013 г. Архивировано из оригинала 23 декабря 2019 г. . Проверено 26 сентября 2015 г.
- ^ «10 причин, по которым Python полезен для исследований (и несколько причин, по которым этого не происходит) - Хойт Кепке» . Статистический факультет Вашингтонского университета . Архивировано из оригинала 31 мая 2020 года . Проверено 3 февраля 2019 г.
- ^ Шелл, Скотт (17 июня 2014 г.). «Введение в Python для научных вычислений» (PDF) . Архивировано (PDF) из оригинала 4 февраля 2019 года . Проверено 3 февраля 2019 г.
- ^ Пиотровский, Пшемыслав (июль 2006 г.). «Создание быстрой среды веб-разработки для серверных страниц Python и Oracle» . Технологическая сеть Oracle . Оракул. Архивировано из оригинала 2 апреля 2019 года . Проверено 12 марта 2012 г.
- ^ Эби, Филип Дж. (7 декабря 2003 г.). «PEP 333 — Интерфейс шлюза веб-сервера Python v1.0» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 14 июня 2020 года . Проверено 19 февраля 2012 г.
- ^ «ПиПИ» . ПиПИ . 17 марта 2024 г. Архивировано из оригинала 17 марта 2024 г.
- ^ Подумай, Кэнопи. «Навес» . www.en Thought.com . Архивировано из оригинала 15 июля 2017 года . Проверено 20 августа 2016 г.
- ^ «PEP 7 — Руководство по стилю для кода C | peps.python.org» . peps.python.org . Архивировано из оригинала 24 апреля 2022 года . Проверено 28 апреля 2022 г.
- ^ «4. Создание расширений C и C++ — документация Python 3.9.2» . docs.python.org . Архивировано из оригинала 3 марта 2021 года . Проверено 1 марта 2021 г.
- ^ ван Россум, Гвидо (5 июня 2001 г.). «PEP 7 – Руководство по стилю для кода C» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 1 июня 2020 года . Проверено 24 ноября 2008 г.
- ^ «Байт-код CPython» . Документы.python.org. Архивировано из оригинала 5 июня 2020 года . Проверено 16 февраля 2016 г.
- ^ «Внутреннее устройство Python 2.5» (PDF) . Архивировано (PDF) из оригинала 6 августа 2012 года . Проверено 19 апреля 2011 г.
- ^ «Журнал изменений — документация Python 3.9.0» . docs.python.org . Архивировано из оригинала 7 февраля 2021 года . Проверено 8 февраля 2021 г.
- ^ «Скачать Python» . Python.org . Архивировано из оригинала 8 декабря 2020 года . Проверено 13 декабря 2020 г.
- ^ "история [vmspython]" . www.vmspython.org . Архивировано из оригинала 2 декабря 2020 года . Проверено 4 декабря 2020 г.
- ^ «Интервью с Гвидо ван Россумом» . Орейли.com. Архивировано из оригинала 16 июля 2014 года . Проверено 24 ноября 2008 г.
- ^ «Загрузить Python для других платформ» . Python.org . Архивировано из оригинала 27 ноября 2020 года . Проверено 4 декабря 2020 г.
- ^ «Совместимость с PyPy» . Pypy.org. Архивировано из оригинала 6 июня 2020 года . Проверено 3 декабря 2012 г.
- ^ Команда The PyPy (28 декабря 2019 г.). «Скачать и установить» . ПиПи . Архивировано из оригинала 8 января 2022 года . Проверено 8 января 2022 г.
- ^ «Сравнение скорости между CPython и Pypy» . Speed.pypy.org. Архивировано из оригинала 10 мая 2021 года . Проверено 3 декабря 2012 г.
- ^ «Функции Stackless на уровне приложения — документация PyPy 2.0.2» . Doc.pypy.org. Архивировано из оригинала 4 июня 2020 года . Проверено 17 июля 2013 г.
- ^ «Python для EV3» . Лего Образование . Архивировано из оригинала 7 июня 2020 года . Проверено 17 апреля 2019 г.
- ^ Егулалп, Сердар (29 октября 2020 г.). «Пистон возвращается из мертвых, чтобы ускорить Python» . Инфомир . Архивировано из оригинала 27 января 2021 года . Проверено 26 января 2021 г.
- ^ "cinder: ориентированная на производительность версия CPython для Instagram" . Гитхаб . Архивировано из оригинала 4 мая 2021 года . Проверено 4 мая 2021 г.
- ^ Арока, Рафаэль (7 августа 2021 г.). «Снек Ланг: похоже на Python на Arduino» . Еще один технологический блог . Архивировано из оригинала 5 января 2024 года . Проверено 4 января 2024 г.
- ^ Офранк (CNXSoft), Жан-Люк (16 января 2020 г.). «Snekboard управляет силовыми функциями LEGO с помощью языков программирования CircuitPython или Snek (краудфандинг) — программное обеспечение CNX» . CNX Software — Новости встраиваемых систем . Архивировано из оригинала 5 января 2024 года . Проверено 4 января 2024 г.
- ^ Кеннеди (@mkennedy), Майкл. «Готовы узнать, стали ли вы знаменитыми?» . pythonbytes.fm . Архивировано из оригинала 5 января 2024 года . Проверено 4 января 2024 г.
- ^ Паккард, Кейт (20 декабря 2022 г.). «Язык программирования Snek: встроенный язык вычислений на основе Python» (PDF) . Архивировано (PDF) из оригинала 4 января 2024 года . Проверено 4 января 2024 г.
- ^ «Планы по оптимизации Python» . Хостинг проектов Google . 15 декабря 2009 года. Архивировано из оригинала 11 апреля 2016 года . Проверено 24 сентября 2011 г.
- ^ «Python на Nokia N900» . Стохастическая геометрия . 29 апреля 2010 г. Архивировано из оригинала 20 июня 2019 г. Проверено 9 июля 2015 г.
- ^ «Бритон» . brython.info . Архивировано из оригинала 3 августа 2018 года . Проверено 21 января 2021 г.
- ^ «Трансшифрование – Python в браузере» . transcrypt.org . Архивировано из оригинала 19 августа 2018 года . Проверено 22 декабря 2020 г.
- ^ «Трансшифрование: анатомия компилятора Python в JavaScript» . ИнфоQ . Архивировано из оригинала 5 декабря 2020 года . Проверено 20 января 2021 г.
- ^ «Кодон: различия с Python» . Архивировано из оригинала 25 мая 2023 года . Проверено 28 августа 2023 г.
- ^ Лоусон, Лорейн (14 марта 2023 г.). «Компилятор, созданный MIT, ускоряет код Python» . Новый стек . Архивировано из оригинала 6 апреля 2023 года . Проверено 28 августа 2023 г.
- ^ «Дом Нуитка | Дом Нуитка» . nuitka.net . Архивировано из оригинала 30 мая 2020 года . Проверено 18 августа 2017 г.
- ^ Гельтон, Серж; Брюне, Пьеррик; Амини, Мехди; Мерлини, Адриан; Корбийон, Ксавье; Рейно, Алан (16 марта 2015 г.). «Pythran: обеспечение статической оптимизации научных программ Python» . Вычислительная наука и открытия . 8 (1). Издательство IOP: 014001. Бибкод : 2015CS&D....8a4001G . дои : 10.1088/1749-4680/8/1/014001 . ISSN 1749-4699 .
- ^ «Транспилятор Python → 11l → C++» . Архивировано из оригинала 24 сентября 2022 года . Проверено 17 июля 2022 г.
- ^ «гугл/сердитый» . 10 апреля 2020 г. Архивировано из оригинала 15 апреля 2020 г. . Получено 25 марта 2020 г. - через GitHub.
- ^ «Проекты» . opensource.google . Архивировано из оригинала 24 апреля 2020 года . Проверено 25 марта 2020 г.
- ^ Франциско, Томас Клэберн в Сан. «Код Google Grumpy заставляет Python работать» . www.theregister.com . Архивировано из оригинала 7 марта 2021 года . Проверено 20 января 2021 г.
- ^ «GitHub — IronLanguages/ironpython3: реализация Python 3.x для .NET Framework, построенная на основе среды выполнения динамического языка» . Гитхаб . Архивировано из оригинала 28 сентября 2021 года.
- ^ «IronPython.net/» . IronPython.net . Архивировано из оригинала 17 апреля 2021 года.
- ^ «Часто задаваемые вопросы по Jython» . www.jython.org . Архивировано из оригинала 22 апреля 2021 года . Проверено 22 апреля 2021 г.
- ^ Мурри, Риккардо (2013). Производительность среды выполнения Python для нечислового научного кода . Европейская конференция «Python в науке» (EuroSciPy). arXiv : 1404.6388 . Бибкод : 2014arXiv1404.6388M .
- ^ «Игра в тесты компьютерного языка» . Архивировано из оригинала 14 июня 2020 года . Проверено 30 апреля 2020 г.
- ^ Перейти обратно: а б Варшава, Барри; Хилтон, Джереми; Гуджер, Дэвид (13 июня 2000 г.). «PEP 1 – Цель и руководящие принципы PEP» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 6 июня 2020 года . Проверено 19 апреля 2011 г.
- ^ «PEP 8 – Руководство по стилю для кода Python» . Python.org . Архивировано из оригинала 17 апреля 2019 года . Проверено 26 марта 2019 г.
- ^ Кэннон, Бретт. «Гвидо, некоторые ребята и список рассылки: как разрабатывается Python» . python.org . Фонд программного обеспечения Python. Архивировано из оригинала 1 июня 2009 года . Проверено 27 июня 2009 г.
- ^ «Перемещение ошибок Python на GitHub [LWN.net]» . Архивировано из оригинала 2 октября 2022 года . Проверено 2 октября 2022 г.
- ^ «Руководство разработчика Python – Руководство разработчика Python» . devguide.python.org . Архивировано из оригинала 9 ноября 2020 года . Проверено 17 декабря 2019 г.
- ^ Хьюз, Оуэн (24 мая 2021 г.). «Языки программирования: почему Python 4.0 может никогда не появиться, по мнению его создателя» . Техреспублика . Архивировано из оригинала 14 июля 2022 года . Проверено 16 мая 2022 г.
- ^ «PEP 602 — Годовой цикл выпуска Python» . Python.org . Архивировано из оригинала 14 июня 2020 года . Проверено 6 ноября 2019 г.
- ^ «Изменение частоты выпусков Python [LWN.net]» . lwn.net . Архивировано из оригинала 6 ноября 2019 года . Проверено 6 ноября 2019 г.
- ^ Норвиц, Нил (8 апреля 2002 г.). «Графики выпусков [Python-Dev] (было Стабильность и изменения)» . Архивировано из оригинала 15 декабря 2018 года . Проверено 27 июня 2009 г.
- ^ Перейти обратно: а б Ааз; Бакстер, Энтони (15 марта 2001 г.). «PEP 6 – Релизы с исправлениями ошибок» . Предложения по улучшению Python . Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 27 июня 2009 г.
- ^ «Python Buildbot» . Руководство разработчика Python . Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 24 сентября 2011 г.
- ^ «1. Расширение Python с помощью C или C++ — документация Python 3.9.1» . docs.python.org . Архивировано из оригинала 23 июня 2020 года . Проверено 14 февраля 2021 г.
- ^ «PEP 623 — удалить wstr из Юникода» . Python.org . Архивировано из оригинала 5 марта 2021 года . Проверено 14 февраля 2021 г.
- ^ «PEP 634 – Соответствие структурному шаблону: Спецификация» . Python.org . Архивировано из оригинала 6 мая 2021 года . Проверено 14 февраля 2021 г.
- ^ «Инструменты документирования» . Python.org . Архивировано из оригинала 11 ноября 2020 года . Проверено 22 марта 2021 г.
- ^ Перейти обратно: а б «Разжигаем аппетит» . Учебник по Python . Фонд программного обеспечения Python. Архивировано из оригинала 26 октября 2012 года . Проверено 20 февраля 2012 г.
- ^ «Должен ли я в Python использовать else после возврата в блоке if?» . Переполнение стека . Обмен стеками. 17 февраля 2011 года. Архивировано из оригинала 20 июня 2019 года . Проверено 6 мая 2011 г.
- ^ Лутц, Марк (2009). Изучение Python: мощное объектно-ориентированное программирование . О'Рейли Медиа, Инк. с. 17. ISBN 9781449379322 . Архивировано из оригинала 17 июля 2017 года . Проверено 9 мая 2017 г.
- ^ Фехили, Крис (2002). Питон . Персиковая яма Пресс. п. хв. ISBN 9780201748840 . Архивировано из оригинала 17 июля 2017 года . Проверено 9 мая 2017 г.
- ^ Лубанович, Билл (2014). Знакомство с Питоном . Севастополь, Калифорния: O'Reilly Media. п. 305. ИСБН 978-1-4493-5936-2 . Проверено 31 июля 2023 г.
- ^ Блейк, Трой (18 января 2021 г.). «Индекс ТИОБЕ за январь 2021 года» . Новости технологий и информация от SeniorDBA . Архивировано из оригинала 21 марта 2021 года . Проверено 26 февраля 2021 г.
- ^ «Цитаты о Python» . Фонд программного обеспечения Python. Архивировано из оригинала 3 июня 2020 года . Проверено 8 января 2012 г.
- ^ «Организации, использующие Python» . Фонд программного обеспечения Python. Архивировано из оригинала 21 августа 2018 года . Проверено 15 января 2009 г.
- ^ «Python: Святой Грааль программирования» . Бюллетень ЦЕРН (31/2006). Публикации ЦЕРН. 31 июля 2006 г. Архивировано из оригинала 15 января 2013 г. Проверено 11 февраля 2012 г.
- ^ Шафер, Дэниел Г. (17 января 2003 г.). «Python упрощает проектирование миссий космических кораблей» . Фонд программного обеспечения Python. Архивировано из оригинала 5 июня 2020 года . Проверено 24 ноября 2008 г.
- ^ «Торнадо: веб-фреймворк реального времени Facebook для Python – Facebook для разработчиков» . Facebook для разработчиков . Архивировано из оригинала 19 февраля 2019 года . Проверено 19 июня 2018 г.
- ^ «На чем основан Instagram: сотни примеров, десятки технологий» . Инстаграм Инжиниринг. 11 декабря 2016 г. Архивировано из оригинала 15 июня 2020 г. Проверено 27 мая 2019 г.
- ^ «Как мы используем Python в Spotify» . Лаборатория Spotify . 20 марта 2013 г. Архивировано из оригинала 10 июня 2020 г. . Проверено 25 июля 2018 г.
- ^ Фортенберри, Тим (17 января 2003 г.). «Промышленный свет и магия работают на Python» . Фонд программного обеспечения Python. Архивировано из оригинала 6 июня 2020 года . Проверено 11 февраля 2012 г.
- ^ Тафт, Дэррил К. (5 марта 2007 г.). «Python проникает в системы» . eWeek.com . Зифф Дэвис Холдингс. Архивировано из оригинала 13 августа 2021 года . Проверено 24 сентября 2011 г.
- ^ GitHub — reddit-archive/reddit: исторический код с reddit.com. , Архивы Reddit, заархивировано из оригинала 1 июня 2020 г. , получено 20 марта 2019 г.
- ^ «Статистика использования и доля рынка Python для веб-сайтов» . 2012. Архивировано из оригинала 13 августа 2021 года . Проверено 18 декабря 2012 г.
- ^ Олифант, Трэвис (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 г.
- ^ Миллман, К. Джаррод; Айвазис, Михаил (2011). «Python для ученых и инженеров» . Вычисления в науке и технике . 13 (2): 9–12. Бибкод : 2011CSE....13b...9M . дои : 10.1109/MCSE.2011.36 . Архивировано из оригинала 19 февраля 2019 года . Проверено 7 июля 2014 г.
- ^ Естественное образование с помощью SageMath , Инновационные вычисления в естественнонаучном образовании, заархивировано из оригинала 15 июня 2020 г. , получено 22 апреля 2019 г.
- ^ «OpenCV: Учебные пособия по OpenCV-Python» . docs.opencv.org . Архивировано из оригинала 23 сентября 2020 года . Проверено 14 сентября 2020 г.
- ^ Дин, Джефф ; Монга, Раджат; и др. (9 ноября 2015 г.). «TensorFlow: крупномасштабное машинное обучение в гетерогенных системах» (PDF) . TensorFlow.org . Google Исследования. Архивировано (PDF) из оригинала 20 ноября 2015 г. Проверено 10 ноября 2015 г.
- ^ Пятецкий, Григорий. «Python съедает R: Лучшее программное обеспечение для аналитики, обработки данных и машинного обучения в 2018 году: тенденции и анализ» . КДнаггетс . Архивировано из оригинала 15 ноября 2019 года . Проверено 30 мая 2018 г.
- ^ «Кто использует scikit-learn? – документация scikit-learn 0.20.1» . scikit-learn.org . Архивировано из оригинала 6 мая 2020 года . Проверено 30 ноября 2018 г.
- ^ Жуппи, Норм . «Google усложняет задачи машинного обучения с помощью специального чипа TPU» . Блог об облачной платформе Google . Архивировано из оригинала 18 мая 2016 года . Проверено 19 мая 2016 г.
- ^ Де Рэдт, Люк; Киммиг, Анжелика (2015). «Концепции вероятностного (логического) программирования» . Машинное обучение . 100 (1): 5–47. дои : 10.1007/s10994-015-5494-z . S2CID 3166992 .
- ^ «Набор средств естественного языка – документация NLTK 3.5b1» . www.nltk.org . Архивировано из оригинала 13 июня 2020 года . Проверено 10 апреля 2020 г.
- ^ Андерсен К. и Свифт Т., 2023. Система Янус: мост к новым приложениям пролога. В Прологе: Следующие 50 лет (стр. 93–104). Чам: Springer Nature, Швейцария.
- ^ «Интерфейс SWI-Prolog Python» . Архивировано из оригинала 15 марта 2024 года . Проверено 15 марта 2024 г.
- ^ Тарау, П., 2023. Размышления об автоматизации, обучаемости и выразительности в языках программирования, основанных на логике. В Прологе: Следующие 50 лет (стр. 359–371). Чам: Springer Nature, Швейцария.
- ^ «Tkinter — интерфейс Python для TCL/Tk» . Архивировано из оригинала 18 октября 2012 года . Проверено 9 июня 2023 г.
- ^ «Урок по Python Tkinter» . 3 июня 2020 года. Архивировано из оригинала 9 июня 2023 года . Проверено 9 июня 2023 г.
- ^ «Установщики GIMP для Windows – часто задаваемые вопросы» . 26 июля 2013 года. Архивировано из оригинала 17 июля 2013 года . Проверено 26 июля 2013 г.
- ^ «Компоненты Jasc PSP9» . Архивировано из оригинала 19 марта 2008 года.
- ^ «О начале работы с написанием скриптов геообработки» . Справка ArcGIS Desktop 9.2 . Институт исследования экологических систем. 17 ноября 2006 г. Архивировано из оригинала 5 июня 2020 г. . Проверено 11 февраля 2012 г.
- ^ Свиная грудинка CCP (24 августа 2010 г.). «Бесстековый Python 2.7» . Блоги разработчиков сообщества EVE . Игры КПК . Архивировано из оригинала 11 января 2014 года . Проверено 11 января 2014 г.
Как вы, возможно, знаете, в основе EVE лежит язык программирования, известный как Stackless Python.
- ^ Кодилл, Барри (20 сентября 2005 г.). «Моддинг Sid Meier's Civilization IV» . Блог разработчиков Sid Meier's Civilization IV . Игры Фираксис . Архивировано из оригинала 2 декабря 2010 года.
Мы создали три уровня инструментов... Следующий уровень предлагает поддержку Python и XML, позволяя более опытным моддерам манипулировать игровым миром и всем, что в нем.
- ^ «Руководство по языку Python (v1.0)» . API данных списка документов Google v1.0 . Архивировано из оригинала 15 июля 2010 года.
- ^ «Настройка и использование Python» . Фонд программного обеспечения Python. Архивировано из оригинала 17 июня 2020 года . Проверено 10 января 2020 г. .
- ^ «Иммунитет: знать, что ты в безопасности» . Архивировано из оригинала 16 февраля 2009 года.
- ^ «Основная безопасность» . Основная безопасность . Архивировано из оригинала 9 июня 2020 года . Проверено 10 апреля 2020 г.
- ^ «Что такое сахар?» . Сахарные лаборатории. Архивировано из оригинала 9 января 2009 года . Проверено 11 февраля 2012 г.
- ^ «Новые функции и исправления версии 4.0» . LibreOffice.org . Фонд документов . 2013. Архивировано из оригинала 9 февраля 2014 года . Проверено 25 февраля 2013 г.
- ^ «Подсказки для пользователей Python» . boo.codehaus.org . Фонд Кодхаус. Архивировано из оригинала 11 декабря 2008 года . Проверено 24 ноября 2008 г.
- ^ Эстербрук, Чарльз. «Благодарности» . cobra-language.com . Язык кобры. Архивировано из оригинала 8 февраля 2008 года . Проверено 7 апреля 2010 г.
- ^ «Предложения: итераторы и генераторы [ES4 Wiki]» . wiki.ecmascript.org. Архивировано из оригинала 20 октября 2007 года . Проверено 24 ноября 2008 г.
- ^ «Часто задаваемые вопросы» . Документация Godot Engine . Архивировано из оригинала 28 апреля 2021 года . Проверено 10 мая 2021 г.
- ^ Кинкейд, Джейсон (10 ноября 2009 г.). «Google’s Go: новый язык программирования, совместимый с Python и C++» . ТехКранч . Архивировано из оригинала 18 января 2010 года . Проверено 29 января 2010 г.
- ^ Страчан, Джеймс (29 августа 2003 г.). «Groovy — рождение нового динамического языка для платформы Java» . Архивировано из оригинала 5 апреля 2007 года . Проверено 11 июня 2007 г.
- ^ «Модульная документация — почему Mojo» . docs.modular.com . Архивировано из оригинала 5 мая 2023 года . Проверено 5 мая 2023 г.
Mojo как член семейства Python [..] Использование Python значительно упрощает наши усилия по проектированию, поскольку большая часть синтаксиса уже определена. [..] мы решили, что правильная долгосрочная цель для Mojo — предоставить расширенный набор Python (т.е. быть совместимым с существующими программами) и немедленно внедрить CPython для поддержки экосистемы с длинным хвостом. Мы ожидаем и надеемся, что программист Python будет сразу же знаком с Mojo, а также предоставит новые инструменты для разработки кода системного уровня, которые позволят вам делать то, для чего Python обращается к C и C++.
- ^ Спенсер, Майкл (4 мая 2023 г.). «Что такое язык программирования Mojo?» . datasciencelearningcenter.substack.com . Архивировано из оригинала 5 мая 2023 года . Проверено 5 мая 2023 г.
- ^ Егулалп, Сердар (16 января 2017 г.). «Язык Nim основан на лучшем из Python, Rust, Go и Lisp» . Инфомир . Архивировано из оригинала 13 октября 2018 года . Проверено 7 июня 2020 г.
Синтаксис Nim сильно напоминает синтаксис Python, поскольку он использует блоки кода с отступами и некоторые элементы того же синтаксиса (например, способ построения блоков if/elif/then/else).
- ^ «Интервью с создателем Ruby» . Linuxdevcenter.com. Архивировано из оригинала 28 апреля 2018 года . Проверено 3 декабря 2012 г.
- ^ Латтнер, Крис (3 июня 2014 г.). «Домашняя страница Криса Лэттнера» . Крис Лэттнер. Архивировано из оригинала 22 декабря 2015 года . Проверено 3 июня 2014 г.
Я начал работу над языком программирования Swift в июле 2010 года. Я реализовал большую часть базовой структуры языка, и лишь несколько человек знали о его существовании. Несколько других (удивительных) людей начали серьезно вносить свой вклад в конце 2011 года, и в июле 2013 года это стало основным направлением деятельности группы Apple Developer Tools [...], черпая идеи из Objective-C, Rust, Haskell, Ruby, Python, C#, CLU и многие другие, чтобы перечислять их.
- ^ Джалан, Нишант Анжани (10 ноября 2022 г.). «Программирование на Котлине» . Кодекс . Проверено 29 апреля 2024 г.
- ^ Куприс, Андреас; Товарищи, Донал К. (14 сентября 2000 г.). «СОВЕТ №3: Формат СОВЕТА» . tcl.tk. Разработчик Tcl Xchange. Архивировано из оригинала 13 июля 2017 года . Проверено 24 ноября 2008 г.
- ^ Густафссон, Пер; Нисканен, Раймо (29 января 2007 г.). «EEP 1: Цель и руководящие принципы EEP» . erlang.org. Архивировано из оригинала 15 июня 2020 года . Проверено 19 апреля 2011 г.
- ^ «Процесс быстрой эволюции» . Репозиторий Swift Programming Language Evolution на GitHub . 18 февраля 2020 года. Архивировано из оригинала 27 апреля 2020 года . Проверено 27 апреля 2020 г.
Источники [ править ]
- «Python для искусственного интеллекта» . Питон Вики. 19 июля 2012 года. Архивировано из оригинала 1 ноября 2012 года . Проверено 3 декабря 2012 г.
- Пейн, Джоселин, изд. (август 2005 г.). «ИИ в Python» . Информационный бюллетень AI Expert . Амзи!. Архивировано из оригинала 26 марта 2012 года . Проверено 11 февраля 2012 г.
- «PyAIML 0.8.5: Индекс пакета Python» . Pypi.python.org . Проверено 17 июля 2013 г.
- Рассел, Стюарт Дж. и Норвиг, Питер (2009). Искусственный интеллект: современный подход (3-е изд.). Река Аппер-Седл, Нью-Джерси: Прентис-Холл. ISBN 978-0-13-604259-4 .
Дальнейшее чтение [ править ]
- Дауни, Аллен Б. (май 2012 г.). Думайте Python: как думать как ученый-компьютерщик (изд. версии 1.6.6). Издательство Кембриджского университета. ISBN 978-0-521-72596-5 .
- Гамильтон, Наоми (5 августа 2008 г.). «А-Я языков программирования: Python» . Компьютерный мир . Архивировано из оригинала 29 декабря 2008 года . Проверено 31 марта 2010 г.
- Лутц, Марк (2013). Изучение Python (5-е изд.). О'Рейли Медиа. ISBN 978-0-596-15806-4 .
- Саммерфилд, Марк (2009). Программирование на Python 3 (2-е изд.). Аддисон-Уэсли Профессионал. ISBN 978-0-321-68056-3 .
- Рамальо, Лучано (май 2022 г.). Свободный Питон . О'Рейли Медиа. ISBN 978-1-4920-5632-4 .
Внешние ссылки [ править ]
- Python (язык программирования)
- Языки программирования на основе классов
- Интерфейс ноутбука
- Информатика в Нидерландах
- Параллельные языки программирования
- Кроссплатформенное бесплатное программное обеспечение
- Кроссплатформенное программное обеспечение
- Голландские изобретения
- Динамически типизированные языки программирования
- Образовательные языки программирования
- Языки программирования высокого уровня
- Информационные технологии в Нидерландах
- Мультипарадигмальные языки программирования
- Объектно-ориентированные языки программирования
- Языки программирования сопоставления шаблонов
- Языки программирования
- Языки программирования, созданные в 1991 году.
- Языки сценариев
- Текстоориентированные языки программирования