0% found this document useful (0 votes)
196 views231 pages

Python (Programming Language) - Wikipedia

Python is a high-level, general-purpose programming language that is dynamically typed and garbage-collected. It supports multiple programming paradigms including object-oriented, procedural, and functional programming. Python's design emphasizes code readability and its syntax allows code to be written in a natural way resembling English. It has a large standard library and is an interpreted language.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
196 views231 pages

Python (Programming Language) - Wikipedia

Python is a high-level, general-purpose programming language that is dynamically typed and garbage-collected. It supports multiple programming paradigms including object-oriented, procedural, and functional programming. Python's design emphasizes code readability and its syntax allows code to be written in a natural way resembling English. It has a large standard library and is an interpreted language.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 231

Python

(programming
language)

Python is a high-level, general-purpose


programming language. Its design
philosophy emphasizes code readability
with the use of significant indentation.[33]
Python

Paradigm Multi-paradigm:
object-oriented,[1]
procedural
(imperative),
functional, structured,
reflective

Designed by Guido van Rossum

Developer Python Software


Foundation

First appeared 20 February 1991[2]

Stable release 3.11.1[3]  / 6


December 2022
Preview release 3.12.0a4[4]  / 10
January 2023

Typing discipline Duck, dynamic, strong


typing;[5] gradual
(since 3.5, but ignored
in CPython)[6]

OS Windows, macOS,
Linux/UNIX,
Android[7][8] and
more[9]

License Python Software


Foundation License

Filename extensions .py, .pyi, .pyc, .pyd,


.pyw, .pyz (since
3.5),[10] .pyo (prior to
3.5)[11]
Website python.org (https://w
ww.python.org/)

Major implementations

CPython, PyPy, Stackless Python,


MicroPython, CircuitPython, IronPython,
Jython

Dialects

Cython, RPython, Starlark[12]

Influenced by

ABC,[13] Ada,[14] ALGOL 68,[15] APL,[16] C,[17]


C++,[18] CLU,[19] Dylan,[20] Haskell,[21][16]
Icon,[22] Lisp,[23] Modula-3,[15][18] Perl,[24]
Standard ML[16]

Influenced

Apache Groovy, Boo, Cobra, CoffeeScript,[25]


D, F#, Genie,[26] Go, JavaScript,[27][28] Julia,[29]
Nim, Ring,[30] Ruby,[31] Swift[32]
Python Programming at Wikibooks

Python is dynamically-typed and garbage-


collected. It supports multiple
programming paradigms, including
structured (particularly procedural), object-
oriented and functional programming. It is
often described as a "batteries included"
language due to its comprehensive
standard library.[34][35]

Guido van Rossum began working on


Python in the late 1980s as a successor to
the ABC programming language and first
released it in 1991 as Python 0.9.0.[36]
Python 2.0 was released in 2000 and
introduced new features such as list
comprehensions, cycle-detecting garbage
collection, reference counting, and
Unicode support. Python 3.0, released in
2008, was a major revision not completely
backward-compatible with earlier versions.
Python 2.7.18, released in 2020, was the
last release of Python 2.[37]

Python consistently ranks as one of the


most popular programming
languages.[38][39][40][41]

History
The designer of Python, Guido van Rossum, at OSCON 2006

Python was conceived in the late 1980s[42]


by Guido van Rossum at Centrum
Wiskunde & Informatica (CWI) in the
Netherlands as a successor to the ABC
programming language, which was
inspired by SETL,[43] capable of exception
handling (from the start plus new
capabilities in Python 3.11) and interfacing
with the Amoeba operating system.[13] Its
implementation began in
December 1989.[44] Van Rossum
shouldered sole responsibility for the
project, as the lead developer, until 12 July
2018, when he announced his "permanent
vacation" from his responsibilities as
Python's "benevolent dictator for life", a
title the Python community bestowed
upon him to reflect his long-term
commitment as the project's chief
decision-maker.[45] In January 2019, active
Python core developers elected a five-
member Steering Council to lead the
project.[46][47]
Python 2.0 was released on 16 October
2000, with many major new features.[48]
Python 3.0, released on 3 December 2008,
with many of its major features
backported to Python 2.6.x[49] and 2.7.x.
Releases of Python 3 include the 2to3
utility, which automates the translation of
Python 2 code to Python 3.[50]

Python 2.7's end-of-life was initially set for


2015, then postponed to 2020 out of
concern that a large body of existing code
could not easily be forward-ported to
Python 3.[51][52] No further security
patches or other improvements will be
released for it.[53][54] Currently only 3.7 and
later are supported. In 2021, Python 3.9.2
and 3.8.8 were expedited[55] as all versions
of Python (including 2.7[56]) had security
issues leading to possible remote code
execution[57] and web cache poisoning.[58]

In 2022, Python 3.10.4 and 3.9.12 were


expedited[59] and 3.8.13, and 3.7.13,
because of many security issues.[60] When
Python 3.9.13 was released in May 2022, it
was announced that the 3.9 series (joining
the older series 3.8 and 3.7) will only
receive security fixes going forward.[61] On
September 7, 2022, four new releases
were made due to a potential denial-of-
service attack: 3.10.7, 3.9.14, 3.8.14, and
3.7.14.[62][63]

As of November 2022, Python 3.11.0 is the


current stable release and among the
notable changes from 3.10 are that it is
10–60% faster and significantly improved
error reporting.[64]

Python 3.12 (alpha 2) has improved error


messages.

Removals from Python

The deprecated smtpd module has


been removed from Python 3.12 (alpha).
And a number of other old, broken and
deprecated functions (e.g. from
unittest module), classes and
methods have been removed. The
deprecated wstr and wstr_ length
members of the C implementation of
Unicode objects were removed,[65] to make
UTF-8 the default in later Python versions.

Historically, Python 3 also made changes


from Python 2, e.g. changed the division
operator.

Design philosophy and


features
Python is a multi-paradigm programming
language. Object-oriented programming
and structured programming are fully
supported, and many of their features
support functional programming and
aspect-oriented programming (including
metaprogramming[66] and
metaobjects).[67] Many other paradigms
are supported via extensions, including
design by contract[68][69] and logic
programming.[70]

Python uses dynamic typing and a


combination of reference counting and a
cycle-detecting garbage collector for
memory management.[71] It uses dynamic
name resolution (late binding), which
binds method and variable names during
program execution.

Its design offers some support for


functional programming in the Lisp
tradition. It has
filter , map and reduce functions;
list comprehensions, dictionaries, sets,
and generator expressions.[72] The
standard library has two modules
( itertools and functools ) that
implement functional tools borrowed from
Haskell and Standard ML.[73]
Its core philosophy is summarized in the
document The Zen of Python (PEP 20),
which includes aphorisms such as:[74]

Beautiful is better than ugly.


Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Readability counts.

Rather than building all of its functionality


into its core, Python was designed to be
highly extensible via modules. This
compact modularity has made it
particularly popular as a means of adding
programmable interfaces to existing
applications. Van Rossum's vision of a
small core language with a large standard
library and easily extensible interpreter
stemmed from his frustrations with ABC,
which espoused the opposite approach.[42]

Python strives for a simpler, less-cluttered


syntax and grammar while giving
developers a choice in their coding
methodology. In contrast to Perl's "there is
more than one way to do it" motto, Python
embraces a "there should be one—and
preferably only one—obvious way to do it"
philosophy.[74] Alex Martelli, a Fellow at the
Python Software Foundation and Python
book author, wrote: "To describe
something as 'clever' is not considered a
compliment in the Python culture."[75]

Python's developers strive to avoid


premature optimization and reject patches
to non-critical parts of the CPython
reference implementation that would offer
marginal increases in speed at the cost of
clarity.[76] When speed is important, a
Python programmer can move time-critical
functions to extension modules written in
languages such as C; or use PyPy, a just-
in-time compiler. Cython is also available,
which translates a Python script into C and
makes direct C-level API calls into the
Python interpreter.
Python's developers aim for it to be fun to
use. This is reflected in its name—a tribute
to the British comedy group Monty
Python[77]—and in occasionally playful
approaches to tutorials and reference
materials, such as the use of the terms
"spam", and "eggs" (a reference to a Monty
Python sketch) in examples, instead of the
often-used "foo", and "bar".[78][79]

A common neologism in the Python


community is pythonic, which has a wide
range of meanings related to program
style. "Pythonic" code may use Python
idioms well, be natural or show fluency in
the language, or conform with Python's
minimalist philosophy and emphasis on
readability. Code that is difficult to
understand or reads like a rough
transcription from another programming
language is called unpythonic.[80][81]

Python users and admirers, especially


those considered knowledgeable or
experienced, are often referred to as
Pythonistas.[82][83]

Syntax and semantics


Python is meant to be an easily readable
language. Its formatting is visually
uncluttered and often uses English
keywords where other languages use
punctuation. Unlike many other languages,
it does not use curly brackets to delimit
blocks, and semicolons after statements
are allowed but rarely used. It has fewer
syntactic exceptions and special cases
than C or Pascal.[84]

Indentation

Python uses whitespace indentation,


rather than curly brackets or keywords, to
delimit blocks. An increase in indentation
comes after certain statements; a
decrease in indentation signifies the end
of the current block.[85] Thus, the
program's visual structure accurately
represents its semantic structure.[86] This
feature is sometimes termed the off-side
rule. Some other languages use
indentation this way; but in most,
indentation has no semantic meaning. The
recommended indent size is four
spaces.[87]

Statements and control flow

Python's statements include:

The assignment statement, using a


single equals sign =
The if statement, which conditionally
executes a block of code, along with
else and elif (a contraction of
else-if)
The for statement, which iterates
over an iterable object, capturing each
element to a local variable for use by the
attached block
The while statement, which
executes a block of code as long as its
condition is true
The try statement, which allows
exceptions raised in its attached code
block to be caught and handled by
except clauses (or new syntax
except* in Python 3.11 for exception
groups[88]); it also ensures that clean-up
code in a finally block is always
run regardless of how the block exits
The raise statement, used to raise a
specified exception or re-raise a caught
exception
The class statement, which
executes a block of code and attaches
its local namespace to a class, for use in
object-oriented programming
The def statement, which defines a
function or method
The with statement, which encloses
a code block within a context manager
(for example, acquiring a lock before it
is run, then releasing the lock; or
opening and closing a file), allowing
resource-acquisition-is-initialization
(RAII)-like behavior and replacing a
common try/finally idiom[89]
The break statement, which exits a
loop
The continue statement, which
skips the rest of the current iteration and
continues with the next
The del statement, which removes a
variable—deleting the reference from the
name to the value, and producing an
error if the variable is referred to before
it is redefined
The pass statement, serving as a
NOP, syntactically needed to create an
empty code block
The assert statement, used in
debugging to check for conditions that
should apply
The yield statement, which returns
a value from a generator function (and
also an operator); used to implement
coroutines
The return statement, used to
return a value from a function
The import and from statements,
used to import modules whose
functions or variables can be used in the
current program

The assignment statement ( = ) binds a


name as a reference to a separate,
dynamically-allocated object. Variables
may subsequently be rebound at any time
to any object. In Python, a variable name is
a generic reference holder without a fixed
data type; however, it always refers to
some object with a type. This is called
dynamic typing—in contrast to statically-
typed languages, where each variable may
contain only a value of a certain type.

Python does not support tail call


optimization or first-class continuations,
and, according to Van Rossum, it never
will.[90][91] However, better support for
coroutine-like functionality is provided by
extending Python's generators.[92] Before
2.5, generators were lazy iterators; data
was passed unidirectionally out of the
generator. From Python 2.5 on, it is
possible to pass data back into a
generator function; and from version 3.3, it
can be passed through multiple stack
levels.[93]

Expressions

Python's expressions include:


The + , - , and * operators for
mathematical addition, subtraction, and
multiplication are similar to other
languages, but the behavior of division
differs. There are two types of divisions
in Python: floor division (or integer
division) // and floating-
point / division.[94] Python uses the
** operator for exponentiation.
Python uses the + operator for string
concatenation. Python uses the *
operator for duplicating a string a
specified number of times.
The @ infix operator. It is intended to
be used by libraries such as NumPy for
matrix multiplication.[95][96]
The syntax := , called the "walrus
operator", was introduced in Python 3.8.
It assigns values to variables as part of
a larger expression.[97]
In Python, == compares by value.
Python's is operator may be used to
compare object identities (comparison
by reference), and comparisons may be
chained—for example, a <= b <= c .
Python uses and , or , and not as
boolean operators.
Python has a type of expression called a
list comprehension, as well as a more
general expression called a generator
expression.[72]
Anonymous functions are implemented
using lambda expressions; however,
there may be only one expression in
each body.
Conditional expressions are written as
x if c else y [98] (different in
order of operands from the c ? x :
y operator common to many other
languages).
Python makes a distinction between
lists and tuples. Lists are written as
[1, 2, 3] , are mutable, and cannot
be used as the keys of dictionaries
(dictionary keys must be immutable in
Python). Tuples, written as (1, 2,
3) , are immutable and thus can be
used as keys of dictionaries, provided all
of the tuple's elements are immutable.
The + operator can be used to
concatenate two tuples, which does not
directly modify their contents, but
produces a new tuple containing the
elements of both. Thus, given the
variable t initially equal to (1, 2,
3) , executing t = t + (4, 5)
first evaluates t + (4, 5) , which
yields (1, 2, 3, 4, 5) , which is
then assigned back to t —thereby
effectively "modifying the contents" of
t while conforming to the immutable
nature of tuple objects. Parentheses are
optional for tuples in unambiguous
contexts.[99]
Python features sequence unpacking
where multiple expressions, each
evaluating to anything that can be
assigned (to a variable, writable
property, etc.) are associated in an
identical manner to that forming tuple
literals—and, as a whole, are put on the
left-hand side of the equal sign in an
assignment statement. The statement
expects an iterable object on the right-
hand side of the equal sign that
produces the same number of values as
the provided writable expressions; when
iterated through them, it assigns each of
the produced values to the
corresponding expression on the
left.[100]
Python has a "string format" operator
% that functions analogously to
printf format strings in C—e.g.
"spam=%s eggs=%d" % ("blah",
2) evaluates to "spam=blah
eggs=2" . In Python 2.6+ and 3+, this
was supplemented by the format()
method of the str class, e.g.
"spam={0} eggs=
{1}".format("blah", 2) .
Python 3.6 added "f-strings": spam =
"blah"; eggs = 2; f'spam=
{spam} eggs={eggs}' .[101]
Strings in Python can be concatenated
by "adding" them (with the same
operator as for adding integers and
floats), e.g. "spam" + "eggs"
returns "spameggs" . If strings
contain numbers, they are added as
strings rather than integers, e.g. "2" +
"2" returns "22" .
Python has various string literals:
Delimited by single or double quote
marks; unlike in Unix shells, Perl,
and Perl-influenced languages,
single and double quote marks
work the same. Both use the
backslash ( \ ) as an escape
character. String interpolation
became available in Python 3.6 as
"formatted string literals".[101]
Triple-quoted (beginning and ending
with three single or double quote
marks), which may span multiple
lines and function like here
documents in shells, Perl, and Ruby.
Raw string varieties, denoted by
prefixing the string literal with r .
Escape sequences are not
interpreted; hence raw strings are
useful where literal backslashes are
common, such as regular
expressions and Windows-style
paths. (Compare " @ -quoting" in
C#.)
Python has array index and array slicing
expressions in lists, denoted as
a[key] , a[start:stop] or
a[start:stop:step] . Indexes are
zero-based, and negative indexes are
relative to the end. Slices take elements
from the start index up to, but not
including, the stop index. The third slice
parameter called step or stride, allows
elements to be skipped and reversed.
Slice indexes may be omitted—for
example, a[:] returns a copy of the
entire list. Each element of a slice is a
shallow copy.

In Python, a distinction between


expressions and statements is rigidly
enforced, in contrast to languages such as
Common Lisp, Scheme, or Ruby. This
leads to duplicating some functionality.
For example:

List comprehensions vs. for -loops


Conditional expressions vs. if blocks
The eval() vs. exec() built-in
functions (in Python 2, exec is a
statement); the former is for
expressions, the latter is for statements

Statements cannot be a part of an


expression—so list and other
comprehensions or lambda expressions,
all being expressions, cannot contain
statements. A particular case is that an
assignment statement such as a = 1
cannot form part of the conditional
expression of a conditional statement.
This has the advantage of avoiding a
classic C error of mistaking an assignment
operator = for an equality operator ==
in conditions: if (c = 1) { ... }
is syntactically valid (but probably
unintended) C code, but if c = 1:
... causes a syntax error in Python.

Methods

Methods on objects are functions


attached to the object's class; the syntax
instance.method(argument) is, for
normal methods and functions, syntactic
sugar for Class.method(instance,
argument) . Python methods have an
explicit self parameter to access
instance data, in contrast to the implicit
self (or this ) in some other object-
oriented programming languages (e.g.,
C++, Java, Objective-C, Ruby).[102] Python
also provides methods, often called
dunder methods (due to their names
beginning and ending with double-
underscores), to allow user-defined
classes to modify how they are handled by
native operations including length,
comparison, in arithmetic operations and
type conversion.[103]

Typing
The standard type hierarchy in Python 3

Python uses duck typing and has typed


objects but untyped variable names. Type
constraints are not checked at compile
time; rather, operations on an object may
fail, signifying that it is not of a suitable
type. Despite being dynamically typed,
Python is strongly typed, forbidding
operations that are not well-defined (for
example, adding a number to a string)
rather than silently attempting to make
sense of them.

Python allows programmers to define their


own types using classes, most often used
for object-oriented programming. New
instances of classes are constructed by
calling the class (for example,
SpamClass() or EggsClass() ),
and the classes are instances of the
metaclass type (itself an instance of
itself), allowing metaprogramming and
reflection.
Before version 3.0, Python had two kinds
of classes (both using the same syntax):
old-style and new-style,[104] current Python
versions only support the semantics new
style.

The long-term plan is to support gradual


typing.[105] Python's syntax allows
specifying static types, but they are not
checked in the default implementation,
CPython. An experimental optional static
type-checker, mypy, supports compile-time
type checking.[106]
Summary of Python 3's built-in types
Type Mutability Description Syntax examples

True
bool immutable Boolean value
False

bytearray(b'Some
ASCII')
bytearray(b"Some
bytearray mutable Sequence of bytes
ASCII")
bytearray([119,
105, 107, 105])

b'Some ASCII'
b"Some ASCII"
bytes immutable Sequence of bytes
bytes([119, 105,
107, 105])

Complex number with


3+2.7j
complex immutable real and imaginary
3 + 2.7j
parts

Associative array (or


dictionary) of key and
value pairs; can {'key1': 1.0, 3:
dict mutable contain mixed types False}
(keys and values), {}
keys must be a
hashable type

An ellipsis placeholder
...
types.EllipsisType immutable to be used as an index
Ellipsis
in NumPy arrays

float immutable Double-precision


1.33333
floating-point number.
The precision is
machine-dependent
but in practice is
generally implemented
as a 64-bit IEEE 754
number with 53 bits of
precision.[107]

Unordered set,
contains no
frozenset([4.0,
frozenset immutable duplicates; can
'string', True])
contain mixed types, if
hashable

Integer of unlimited
int immutable 42
magnitude[108]

[4.0, 'string',
List, can contain
list mutable True]
mixed types
[]

An object representing
the absence of a
types.NoneType immutable None
value, often called null
in other languages

A placeholder that can


be returned from
overloaded operators
types.NotImplementedType immutable NotImplemented
to indicate
unsupported operand
types.

An immutable
sequence of numbers
range(-1, 10)
commonly used for
range immutable range(10, -5,
looping a specific
-2)
number of times in
for loops[109]

Unordered set,
contains no {4.0, 'string',
set mutable duplicates; can True}
contain mixed types, if set()
hashable
str immutable A character string: 'Wikipedia'
sequence of Unicode "Wikipedia"
codepoints
"""Spanning
multiple
lines"""

Spanning
multiple
lines

(4.0, 'string',
True)
Can contain mixed
tuple immutable ('single
types
element',)
()

Arithmetic operations

Python has the usual symbols for


arithmetic operators ( + , - , * , / ),
the floor division operator // and the
modulo operation % (where the
remainder can be negative, e.g. 4 % -3
== -2 ). It also has ** for
exponentiation, e.g. 5**3 == 125 and
9**0.5 == 3.0 , and a
matrix‑multiplication operator @ .[110]
These operators work like in traditional
math; with the same precedence rules, the
operators infix ( + and - can also be
unary to represent positive and negative
numbers respectively).

The division between integers produces


floating-point results. The behavior of
division has changed significantly over
time:[111]

Current Python (i.e. since 3.0) changed


/ to always be floating-point division,
e.g. 5/2 == 2.5 .
The floor division // operator was
introduced. So 7//3 == 2 , -7//3
== -3 , 7.5//3 == 2.0 and
-7.5//3 == -3.0 . Adding
from __future__ import division
causes a module used in Python 2.7 to
use Python 3.0 rules for division (see
above).

In Python terms, / is true division (or


simply division), and // is floor division.
/ before version 3.0 is classic
division.[111]
Rounding towards negative infinity, though
different from most languages, adds
consistency. For instance, it means that
the equation
(a + b)//b == a//b + 1 is always
true. It also means that the equation
b*(a//b) + a%b == a is valid for
both positive and negative values of a .
However, maintaining the validity of this
equation means that while the result of
a%b is, as expected, in the half-open
interval [0, b), where b is a positive
integer, it has to lie in the interval (b, 0]
when b is negative.[112]
Python provides a round function for
rounding a float to the nearest integer. For
tie-breaking, Python 3 uses round to even:
round(1.5) and round(2.5) both
produce 2 .[113] Versions before 3 used
round-away-from-zero: round(0.5) is
1.0 , round(-0.5) is −1.0 .[114]

Python allows boolean expressions with


multiple equality relations in a manner that
is consistent with general use in
mathematics. For example, the expression
a < b < c tests whether a is less
than b and b is less than c .[115] C-
derived languages interpret this
expression differently: in C, the expression
would first evaluate a < b , resulting in
0 or 1, and that result would then be
compared with c .[116]

Python uses arbitrary-precision arithmetic


for all integer operations. The Decimal
type/class in the decimal module
provides decimal floating-point numbers
to a pre-defined arbitrary precision and
several rounding modes.[117] The
Fraction class in the fractions
module provides arbitrary precision for
rational numbers.[118]

Due to Python's extensive mathematics


library, and the third-party library NumPy
that further extends the native capabilities,
it is frequently used as a scientific
scripting language to aid in problems such
as numerical data processing and
manipulation.[119][120]

Programming examples
Hello world program:

print('Hello, world!')

Program to calculate the factorial of a


positive integer:
1 n = int(input('Type a
number, and its
factorial will be
printed: '))
2
3 if n < 0:
4 raise
ValueError('You must
enter a non-negative
integer')
5
6 factorial = 1
7 for i in range(2, n +
1):
8 factorial *= i
9
10 print(factorial)

Libraries
Python's large standard library[121]
provides tools suited to many tasks and is
commonly cited as one of its greatest
strengths. For Internet-facing applications,
many standard formats and protocols
such as MIME and HTTP are supported. It
includes modules for creating graphical
user interfaces, connecting to relational
databases, generating pseudorandom
numbers, arithmetic with arbitrary-
precision decimals,[122] manipulating
regular expressions, and unit testing.

Some parts of the standard library are


covered by specifications—for example,
the Web Server Gateway Interface (WSGI)
implementation wsgiref follows PEP
333[123]—but most are specified by their
code, internal documentation, and test
suites. However, because most of the
standard library is cross-platform Python
code, only a few modules need altering or
rewriting for variant implementations.

As of 14 November 2022, the Python


Package Index (PyPI), the official
repository for third-party Python software,
contains over 415,000[124] packages with a
wide range of functionality, including:

Automation
Data analytics
Databases
Documentation
Graphical user interfaces
Image processing
Machine learning
Mobile apps
Multimedia
Computer networking
Scientific computing
System administration
Test frameworks
Text processing
Web frameworks
Web scraping

Development environments
Most Python implementations (including
CPython) include a read–eval–print loop
(REPL), permitting them to function as a
command line interpreter for which users
enter statements sequentially and receive
results immediately.
Python also comes with an Integrated
development environment (IDE) called
IDLE, which is more beginner-oriented.

Other shells, including IDLE and IPython,


add further abilities such as improved
auto-completion, session state retention,
and syntax highlighting.

As well as standard desktop integrated


development environments, there are Web
browser-based IDEs, including SageMath,
for developing science- and math-related
programs; PythonAnywhere, a browser-
based IDE and hosting environment; and
Canopy IDE, a commercial IDE
emphasizing scientific computing.[125]

Implementations

Reference implementation

CPython is the reference implementation


of Python. It is written in C, meeting the
C89 standard (Python 3.11 uses C11[126])
with several select C99 features (With later
C versions out, it is considered
outdated.[127][128] CPython includes its
own C extensions, but third-party
extensions are not limited to older C
versions—e.g. they can be implemented
with C11 or C++.[129][130]) It compiles
Python programs into an intermediate
bytecode[131] which is then executed by its
virtual machine.[132] CPython is distributed
with a large standard library written in a
mixture of C and native Python, and is
available for many platforms, including
Windows (starting with Python 3.9, the
Python installer deliberately fails to install
on Windows 7 and 8;[133][134] Windows XP
was supported until Python 3.5) and most
modern Unix-like systems, including
macOS (and Apple M1 Macs, since
Python 3.9.1, with experimental installer)
and unofficial support for e.g. VMS.[135]
Platform portability was one of its earliest
priorities.[136] (During Python 1 and 2
development, even OS/2 and Solaris were
supported,[137] but support has since been
dropped for many platforms.)

Other implementations

PyPy is a fast, compliant interpreter of


Python 2.7 and 3.8.[138][139] Its just-in-
time compiler often brings a significant
speed improvement over CPython but
some libraries written in C cannot be
used with it.[140]
Stackless Python is a significant fork of
CPython that implements microthreads;
it does not use the call stack in the
same way, thus allowing massively
concurrent programs. PyPy also has a
stackless version.[141]
MicroPython and CircuitPython are
Python 3 variants optimized for
microcontrollers, including Lego
Mindstorms EV3.[142]
Pyston is a variant of the Python runtime
that uses just-in-time compilation to
speed up the execution of Python
programs.[143]
Cinder is a performance-oriented fork of
CPython 3.8 that contains a number of
optimizations including bytecode inline
caching, eager evaluation of coroutines,
a method-at-a-time JIT, and an
experimental bytecode compiler.[144]

Unsupported implementations

Other just-in-time Python compilers have


been developed, but are now unsupported:

Google began a project named Unladen


Swallow in 2009, with the aim of
speeding up the Python interpreter
fivefold by using the LLVM, and of
improving its multithreading ability to
scale to thousands of cores,[145] while
ordinary implementations suffer from
the global interpreter lock.
Psyco is a discontinued just-in-time
specializing compiler that integrates
with CPython and transforms bytecode
to machine code at runtime. The
emitted code is specialized for certain
data types and is faster than the
standard Python code. Psyco does not
support Python 2.7 or later.
PyS60 was a Python 2 interpreter for
Series 60 mobile phones released by
Nokia in 2005. It implemented many of
the modules from the standard library
and some additional modules for
integrating with the Symbian operating
system. The Nokia N900 also supports
Python with GTK widget libraries,
enabling programs to be written and run
on the target device.[146]

Cross-compilers to other languages

There are several compilers to high-level


object languages, with either unrestricted
Python, a restricted subset of Python, or a
language similar to Python as the source
language:

Brython,[147] Transcrypt[148][149] and Pyjs


(latest release in 2012) compile Python
to JavaScript.
Cython compiles (a superset of)
Python 2.7 to C (while the resulting code
is also usable with Python 3 and also
e.g. C++).
Nuitka compiles Python into C.[150]
Numba uses LLVM to compile a subset
of Python to machine code.
Pythran compiles a subset of Python 3
to C++ (C++11).[151][152][153]
RPython can be compiled to C, and is
used to build the PyPy interpreter of
Python.
The Python → 11l → C++ transpiler[154]
compiles a subset of Python 3 to C++
(C++17).

Specialized:
MyHDL is a Python-based hardware
description language (HDL), that
converts MyHDL code to Verilog or
VHDL code.

Older projects (or not to be used with


Python 3.x and latest syntax):

Google's Grumpy (latest release in 2017)


transpiles Python 2 to Go.[155][156][157]
IronPython allows running Python 2.7
programs (and an alpha, released in
2021, is also available for "Python 3.4,
although features and behaviors from
later versions may be included"[158]) on
the .NET Common Language
Runtime.[159]
Jython compiles Python 2.7 to Java
bytecode, allowing the use of the Java
libraries from a Python program.[160]
Pyrex (latest release in 2010) and Shed
Skin (latest release in 2013) compile to
C and C++ respectively.

Performance

Performance comparison of various


Python implementations on a non-
numerical (combinatorial) workload was
presented at EuroSciPy '13.[161] Python's
performance compared to other
programming languages is also
benchmarked by The Computer Language
Benchmarks Game.[162]
Development
Python's development is conducted largely
through the Python Enhancement Proposal
(PEP) process, the primary mechanism for
proposing major new features, collecting
community input on issues, and
documenting Python design decisions.[163]
Python coding style is covered in
PEP 8.[164] Outstanding PEPs are reviewed
and commented on by the Python
community and the steering council.[163]

Enhancement of the language


corresponds with the development of the
CPython reference implementation. The
mailing list python-dev is the primary
forum for the language's development.
Specific issues were originally discussed
in the Roundup bug tracker hosted at by
the foundation.[165] In 2022, all issues and
discussions were migrated to GitHub.[166]
Development originally took place on a
self-hosted source-code repository
running Mercurial, until Python moved to
GitHub in January 2017.[167]

CPython's public releases come in three


types, distinguished by which part of the
version number is incremented:
Backward-incompatible versions, where
code is expected to break and needs to
be manually ported. The first part of the
version number is incremented. These
releases happen infrequently—version
3.0 was released 8 years after 2.0.
According to Guido van Rossum, a
version 4.0 is very unlikely to ever
happen.[168]
Major or "feature" releases are largely
compatible with the previous version but
introduce new features. The second part
of the version number is incremented.
Starting with Python 3.9, these releases
are expected to happen annually.[169][170]
Each major version is supported by bug
fixes for several years after its
release.[171]
Bugfix releases,[172] which introduce no
new features, occur about every 3
months and are made when a sufficient
number of bugs have been fixed
upstream since the last release. Security
vulnerabilities are also patched in these
releases. The third and final part of the
version number is incremented.[172]

Many alpha, beta, and release-candidates


are also released as previews and for
testing before final releases. Although
there is a rough schedule for each release,
they are often delayed if the code is not
ready. Python's development team
monitors the state of the code by running
the large unit test suite during
development.[173]

The major academic conference on


Python is PyCon. There are also special
Python mentoring programs, such as
Pyladies.

Python 3.10 deprecated wstr (to be


removed in Python 3.12; meaning Python
extensions[174] need to be modified by
then),[175] and added pattern matching to
the language.[176]
API documentation
generators
Tools that can generate documentation for
Python API include pydoc (available as
part of the standard library), Sphinx, Pdoc
and its forks, Doxygen and Graphviz,
among others.[177]

Naming
Python's name is derived from the British
comedy group Monty Python, whom
Python creator Guido van Rossum enjoyed
while developing the language. Monty
Python references appear frequently in
Python code and culture;[178] for example,
the metasyntactic variables often used in
Python literature are spam and eggs
instead of the traditional foo and
bar.[178][179] The official Python
documentation also contains various
references to Monty Python
routines.[180][181]

The prefix Py- is used to show that


something is related to Python. Examples
of the use of this prefix in names of
Python applications or libraries include
Pygame, a binding of SDL to Python
(commonly used to create games); PyQt
and PyGTK, which bind Qt and GTK to
Python respectively; and PyPy, a Python
implementation originally written in
Python.

Popularity
Since 2003, Python has consistently
ranked in the top ten most popular
programming languages in the TIOBE
Programming Community Index where as
of December 2022 it was the most popular
language (ahead of C, C++, and Java).[40] It
was selected Programming Language of
the Year (for "the highest rise in ratings in
a year") in 2007, 2010, 2018, and 2020 (the
only language to have done so four times
as of 2020[182]).
An empirical study found that scripting
languages, such as Python, are more
productive than conventional languages,
such as C and Java, for programming
problems involving string manipulation
and search in a dictionary, and determined
that memory consumption was often
"better than Java and not much worse
than C or C++".[183]

Large organizations that use Python


include Wikipedia, Google,[184] Yahoo!,[185]
CERN,[186] NASA,[187] Facebook,[188]
Amazon, Instagram,[189] Spotify,[190] and
some smaller entities like ILM[191] and
ITA.[192] The social news networking site
Reddit was written mostly in Python.[193]

Uses

Python Powered

Python can serve as a scripting language


for web applications, e.g., via mod_wsgi
for the Apache webserver.[194] With Web
Server Gateway Interface, a standard API
has evolved to facilitate these
applications. Web frameworks like Django,
Pylons, Pyramid, TurboGears, web2py,
Tornado, Flask, Bottle, and Zope support
developers in the design and maintenance
of complex applications. Pyjs and
IronPython can be used to develop the
client-side of Ajax-based applications.
SQLAlchemy can be used as a data
mapper to a relational database. Twisted
is a framework to program
communications between computers, and
is used (for example) by Dropbox.

Libraries such as NumPy, SciPy, and


Matplotlib allow the effective use of
Python in scientific computing,[195][196]
with specialized libraries such as
Biopython and Astropy providing domain-
specific functionality. SageMath is a
computer algebra system with a notebook
interface programmable in Python: its
library covers many aspects of
mathematics, including algebra,
combinatorics, numerical mathematics,
number theory, and calculus.[197] OpenCV
has Python bindings with a rich set of
features for computer vision and image
processing.[198]

Python is commonly used in artificial


intelligence projects and machine learning
projects with the help of libraries like
TensorFlow, Keras, Pytorch, and scikit-
learn.[199][200][201][202] As a scripting
language with a modular architecture,
simple syntax, and rich text processing
tools, Python is often used for natural
language processing.[203]

Python can also be used to create games,


with libraries such as Pygame, which can
make 2D games.

Python has been successfully embedded


in many software products as a scripting
language, including in finite element
method software such as Abaqus, 3D
parametric modelers like FreeCAD, 3D
animation packages such as 3ds Max,
Blender, Cinema 4D, Lightwave, Houdini,
Maya, modo, MotionBuilder, Softimage,
the visual effects compositor Nuke, 2D
imaging programs like GIMP,[204] Inkscape,
Scribus and Paint Shop Pro,[205] and
musical notation programs like scorewriter
and capella. GNU Debugger uses Python
as a pretty printer to show complex
structures such as C++ containers. Esri
promotes Python as the best choice for
writing scripts in ArcGIS.[206] It has also
been used in several video games,[207][208]
and has been adopted as first of the three
available programming languages in
Google App Engine, the other two being
Java and Go.[209]
Many operating systems include Python
as a standard component. It ships with
most Linux distributions,[210] AmigaOS 4
(using Python 2.7), FreeBSD (as a
package), NetBSD, and OpenBSD (as a
package) and can be used from the
command line (terminal). Many Linux
distributions use installers written in
Python: Ubuntu uses the Ubiquity installer,
while Red Hat Linux and Fedora Linux use
the Anaconda installer. Gentoo Linux uses
Python in its package management
system, Portage.

Python is used extensively in the


information security industry, including in
exploit development.[211][212]

Most of the Sugar software for the One


Laptop per Child XO, developed at Sugar
Labs since 2008, is written in Python.[213]
The Raspberry Pi single-board computer
project has adopted Python as its main
user-programming language.

LibreOffice includes Python and intends to


replace Java with Python. Its Python
Scripting Provider is a core feature[214]
since Version 4.0 from 7 February 2013.

Languages influenced by
Python
Python's design and philosophy have
influenced many other programming
languages:

Boo uses indentation, a similar syntax,


and a similar object model.[215]
Cobra uses indentation and a similar
syntax, and its Acknowledgements
document lists Python first among
languages that influenced it.[216]
CoffeeScript, a programming language
that cross-compiles to JavaScript, has
Python-inspired syntax.
ECMAScript/JavaScript borrowed
iterators and generators from
Python.[217]
GDScript, a scripting language very
similar to Python, built-in to the Godot
game engine.[218]
Go is designed for the "speed of working
in a dynamic language like Python"[219]
and shares the same syntax for slicing
arrays.
Groovy was motivated by the desire to
bring the Python design philosophy to
Java.[220]
Julia was designed to be "as usable for
general programming as Python".[29]
Nim uses indentation and similar
syntax.[221]
Ruby's creator, Yukihiro Matsumoto, has
said: "I wanted a scripting language that
was more powerful than Perl, and more
object-oriented than Python. That's why I
decided to design my own
language."[222]
Swift, a programming language
developed by Apple, has some Python-
inspired syntax.[223]

Python's development practices have also


been emulated by other languages. For
example, the practice of requiring a
document describing the rationale for, and
issues surrounding, a change to the
language (in Python, a PEP) is also used in
Tcl,[224] Erlang,[225] and Swift.[226]

See also
Computer
programming
portal
Free and
open-source
software
portal

Python syntax and semantics


pip (package manager)
List of programming languages
History of programming languages
Comparison of programming languages
References
1. "General Python FAQ — Python 3.9.2
documentation" (https://docs.python.org/3/
faq/general.html#what-is-python) .
docs.python.org. Archived (https://web.arc
hive.org/web/20121024164224/http://doc
s.python.org/faq/general.html#what-is-pyt
hon) from the original on 24 October 2012.
Retrieved 28 March 2021.
2. "Python 0.9.1 part 01/21" (https://www.tuh
s.org/Usenet/alt.sources/1991-February/00
1749.html) . alt.sources archives. Archived
(https://web.archive.org/web/2021081117
1015/https://www.tuhs.org/Usenet/alt.sour
ces/1991-February/001749.html) from the
original on 11 August 2021. Retrieved
11 August 2021.
3. "Python 3.11.1, 3.10.9, 3.9.16, 3.8.16,
3.7.16, and 3.12.0 alpha 3 are now
available" (https://pythoninsider.blogspot.c
om/2022/12/python-3111-3109-3916-3816
-3716-and.html) . 6 December 2022.
Retrieved 7 December 2022.
4. "Python 3.12.0 alpha 4 released" (https://py
thoninsider.blogspot.com/2023/01/python-
3120-alpha-4-released.html) . 10 January
2023. Retrieved 11 January 2023.
5. "Why is Python a dynamic language and
also a strongly typed language – Python
Wiki" (https://wiki.python.org/moin/Why%2
0is%20Python%20a%20dynamic%20langua
ge%20and%20also%20a%20strongly%20typ
ed%20language) . wiki.python.org.
Archived (https://web.archive.org/web/202
10314173706/https://wiki.python.org/moi
n/Why%20is%20Python%20a%20dynamic%
20language%20and%20also%20a%20stron
gly%20typed%20language) from the
original on 14 March 2021. Retrieved
27 January 2021.
6. "PEP 483 – The Theory of Type Hints" (http
s://www.python.org/dev/peps/pep-0483/) .
Python.org. Archived (https://web.archive.o
rg/web/20200614153558/https://www.pyth
on.org/dev/peps/pep-0483/) from the
original on 14 June 2020. Retrieved
14 June 2018.
7. "test — Regression tests package for
Python — Python 3.7.13 documentation" (ht
tps://docs.python.org/3.7/library/test.html?
highlight=android#test.support.is_android)
. docs.python.org. Retrieved 17 May 2022.
8. "platform — Access to underlying platform's
identifying data — Python 3.10.4
documentation" (https://docs.python.org/3/
library/platform.html?highlight=android) .
docs.python.org. Retrieved 17 May 2022.
9. "Download Python" (https://www.python.or
g/downloads/) . Python.org. Archived (http
s://web.archive.org/web/2018080803542
1/https://www.python.org/downloads/)
from the original on 8 August 2018.
Retrieved 24 May 2021.
10. Holth, Moore (30 March 2014). "PEP 0441 –
Improving Python ZIP Application Support"
(https://www.python.org/dev/peps/pep-04
41/) . Archived (https://web.archive.org/we
b/20181226141117/https://www.python.or
g/dev/peps/pep-0441/%20) from the
original on 26 December 2018. Retrieved
12 November 2015.
11. File extension .pyo was removed in Python
3.5. See PEP 0488 (https://www.python.or
g/dev/peps/pep-0488/) Archived (https://
web.archive.org/web/20200601133202/htt
ps://www.python.org/dev/peps/pep-048
8/) 1 June 2020 at the Wayback Machine
12. "Starlark Language" (https://docs.bazel.buil
d/versions/master/skylark/language.html)
. Archived (https://web.archive.org/web/20
200615140534/https://docs.bazel.build/ver
sions/master/skylark/language.html) from
the original on 15 June 2020. Retrieved
25 May 2019.
13. "Why was Python created in the first place?"
(https://docs.python.org/faq/general.html#
why-was-python-created-in-the-first-place) .
General Python FAQ. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20121024164224/http://docs.pyth
on.org/faq/general.html#why-was-python-c
reated-in-the-first-place) from the original
on 24 October 2012. Retrieved 22 March
2007. "I had extensive experience with
implementing an interpreted language in
the ABC group at CWI, and from working
with this group I had learned a lot about
language design. This is the origin of many
Python features, including the use of
indentation for statement grouping and the
inclusion of very high-level data types
(although the details are all different in
Python)."
14. "Ada 83 Reference Manual (raise
statement)" (http://archive.adaic.com/stan
dards/83lrm/html/lrm-11-03.html#11.3) .
Archived (https://web.archive.org/web/201
91022155758/http://archive.adaic.com/sta
ndards/83lrm/html/lrm-11-03.html#11.3)
from the original on 22 October 2019.
Retrieved 7 January 2020.
15. Kuchling, Andrew M. (22 December 2006).
"Interview with Guido van Rossum (July
1998)" (https://web.archive.org/web/20070
501105422/http://www.amk.ca/python/writ
ing/gvr-interview) . amk.ca. Archived from
the original (http://www.amk.ca/python/wri
ting/gvr-interview) on 1 May 2007.
Retrieved 12 March 2012. "I'd spent a
summer at DEC's Systems Research Center,
which introduced me to Modula-2+; the
Modula-3 final report was being written
there at about the same time. What I
learned there later showed up in Python's
exception handling, modules, and the fact
that methods explicitly contain 'self' in their
parameter list. String slicing came from
Algol-68 and Icon."
16. "itertools — Functions creating iterators for
efficient looping — Python 3.7.1
documentation" (https://docs.python.org/3/
library/itertools.html) . docs.python.org.
Archived (https://web.archive.org/web/202
00614153629/https://docs.python.org/3/li
brary/itertools.html) from the original on
14 June 2020. Retrieved 22 November
2016. "This module implements a number
of iterator building blocks inspired by
constructs from APL, Haskell, and SML."
17. van Rossum, Guido (1993). "An Introduction
to Python for UNIX/C Programmers".
Proceedings of the NLUUG
Najaarsconferentie (Dutch UNIX Users
Group). CiteSeerX 10.1.1.38.2023 (https://c
iteseerx.ist.psu.edu/viewdoc/summary?doi
=10.1.1.38.2023) . "even though the design
of C is far from ideal, its influence on
Python is considerable."
18. "Classes" (https://docs.python.org/tutorial/
classes.html) . The Python Tutorial. Python
Software Foundation. Archived (https://we
b.archive.org/web/20121023030209/http://
docs.python.org/tutorial/classes.html)
from the original on 23 October 2012.
Retrieved 20 February 2012. "It is a mixture
of the class mechanisms found in C++ and
Modula-3"
19. Lundh, Fredrik. "Call By Object" (http://effbo
t.org/zone/call-by-object.htm) . effbot.org.
Archived (https://web.archive.org/web/201
91123043655/http://effbot.org/zone/call-b
y-object.htm) from the original on 23
November 2019. Retrieved 21 November
2017. "replace "CLU" with "Python", "record"
with "instance", and "procedure" with
"function or method", and you get a pretty
accurate description of Python's object
model."
20. Simionato, Michele. "The Python 2.3
Method Resolution Order" (https://www.pyt
hon.org/download/releases/2.3/mro/) .
Python Software Foundation. Archived (http
s://web.archive.org/web/2020082023185
4/https://www.python.org/download/releas
es/2.3/mro/) from the original on 20
August 2020. Retrieved 29 July 2014. "The
C3 method itself has nothing to do with
Python, since it was invented by people
working on Dylan and it is described in a
paper intended for lispers"
21. Kuchling, A. M. "Functional Programming
HOWTO" (https://docs.python.org/howto/fu
nctional.html) . Python v2.7.2
documentation. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20121024163217/http://docs.pyth
on.org/howto/functional.html) from the
original on 24 October 2012. Retrieved
9 February 2012. "List comprehensions and
generator expressions [...] are a concise
notation for such operations, borrowed
from the functional programming language
Haskell."
22. Schemenauer, Neil; Peters, Tim; Hetland,
Magnus Lie (18 May 2001). "PEP 255 –
Simple Generators" (https://www.python.or
g/dev/peps/pep-0255/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200605012926/https://www.pyth
on.org/dev/peps/pep-0255/) from the
original on 5 June 2020. Retrieved
9 February 2012.
23. "More Control Flow Tools" (https://docs.pyt
hon.org/3.2/tutorial/controlflow.html) .
Python 3 documentation. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20160604080843/https://docs.pyth
on.org/3.2/tutorial/controlflow.html) from
the original on 4 June 2016. Retrieved
24 July 2015. "By popular demand, a few
features commonly found in functional
programming languages like Lisp have
been added to Python. With the lambda
keyword, small anonymous functions can
be created."
24. "re — Regular expression operations —
Python 3.10.6 documentation" (https://doc
s.python.org/3/library/re.html) .
docs.python.org. Retrieved 6 September
2022. "This module provides regular
expression matching operations similar to
those found in Perl."
25. "CoffeeScript" (https://coffeescript.org/) .
coffeescript.org. Archived (https://web.arch
ive.org/web/20200612100004/http://coffe
escript.org/) from the original on 12 June
2020. Retrieved 3 July 2018.
26. "The Genie Programming Language
Tutorial" (https://wiki.gnome.org/action/sh
ow/Projects/Genie) . Archived (https://web.
archive.org/web/20200601133216/https://
wiki.gnome.org/action/show/Projects/Ge
nie) from the original on 1 June 2020.
Retrieved 28 February 2020.
27. "Perl and Python influences in JavaScript"
(http://www.2ality.com/2013/02/javascript-
influences.html) . www.2ality.com. 24
February 2013. Archived (https://web.archiv
e.org/web/20181226141121/http://2ality.c
om/2013/02/javascript-influences.html%0
A) from the original on 26 December 2018.
Retrieved 15 May 2015.
28. Rauschmayer, Axel. "Chapter 3: The Nature
of JavaScript; Influences" (http://speakingj
s.com/es5/ch03.html) . O'Reilly, Speaking
JavaScript. Archived (https://web.archive.or
g/web/20181226141123/http://speakingjs.
com/es5/ch03.html%0A) from the original
on 26 December 2018. Retrieved 15 May
2015.
29. "Why We Created Julia" (https://julialang.or
g/blog/2012/02/why-we-created-julia) .
Julia website. February 2012. Archived (htt
ps://web.archive.org/web/2020050214401
0/https://julialang.org/blog/2012/02/why-w
e-created-julia/) from the original on 2 May
2020. Retrieved 5 June 2014. "We want
something as usable for general
programming as Python [...]"
30. Ring Team (4 December 2017). "Ring and
other languages" (http://ring-lang.sourcefor
ge.net/doc1.6/introduction.html#ring-and-o
ther-languages) . ring-lang.net. ring-lang.
Archived (https://web.archive.org/web/201
81225175312/http://ring-lang.sourceforge.
net/doc1.6/introduction.html#ring-and-othe
r-languages) from the original on 25
December 2018. Retrieved 4 December
2017.
31. Bini, Ola (2007). Practical JRuby on Rails
Web 2.0 Projects: bringing Ruby on Rails to
the Java platform (https://archive.org/detai
ls/practicaljrubyon0000bini/page/3) .
Berkeley: APress. p. 3 (https://archive.org/d
etails/practicaljrubyon0000bini/page/3) .
ISBN 978-1-59059-881-8.
32. Lattner, Chris (3 June 2014). "Chris
Lattner's Homepage" (http://nondot.org/sa
bre/) . Chris Lattner. Archived (https://web.
archive.org/web/20181225175312/http://n
ondot.org/sabre/) from the original on 25
December 2018. Retrieved 3 June 2014.
"The Swift language is the product of
tireless effort from a team of language
experts, documentation gurus, compiler
optimization ninjas, and an incredibly
important internal dogfooding group who
provided feedback to help refine and battle-
test ideas. Of course, it also greatly
benefited from the experiences hard-won
by many other languages in the field,
drawing ideas from Objective-C, Rust,
Haskell, Ruby, Python, C#, CLU, and far too
many others to list."
33. Kuhlman, Dave. "A Python Book: Beginning
Python, Advanced Python, and Python
Exercises" (https://web.archive.org/web/20
120623165941/http://cutter.rexx.com/~dk
uhlman/python_book_01.html) . Section
1.1. Archived from the original (https://ww
w.davekuhlman.org/python_book_01.pdf)
(PDF) on 23 June 2012.
34. "About Python" (https://www.python.org/a
bout) . Python Software Foundation.
Archived (https://web.archive.org/web/201
20420010049/http://www.python.org/abo
ut/) from the original on 20 April 2012.
Retrieved 24 April 2012., second section
"Fans of Python use the phrase "batteries
included" to describe the standard library,
which covers everything from
asynchronous processing to zip files."
35. "PEP 206 – Python Advanced Library" (http
s://www.python.org/dev/peps/pep-0206/) .
Python.org. Archived (https://web.archive.o
rg/web/20210505003659/https://www.pyth
on.org/dev/peps/pep-0206/) from the
original on 5 May 2021. Retrieved
11 October 2021.
36. Rossum, Guido Van (20 January 2009).
"The History of Python: A Brief Timeline of
Python" (https://python-history.blogspot.co
m/2009/01/brief-timeline-of-python.html) .
The History of Python. Archived (https://we
b.archive.org/web/20200605032200/http
s://python-history.blogspot.com/2009/01/b
rief-timeline-of-python.html) from the
original on 5 June 2020. Retrieved 5 March
2021.
37. Peterson, Benjamin (20 April 2020). "Python
Insider: Python 2.7.18, the last release of
Python 2" (https://pythoninsider.blogspot.c
om/2020/04/python-2718-last-release-of-p
ython-2.html) . Python Insider. Archived (htt
ps://web.archive.org/web/2020042620411
8/https://pythoninsider.blogspot.com/202
0/04/python-2718-last-release-of-python-
2.html) from the original on 26 April 2020.
Retrieved 27 April 2020.
38. "Stack Overflow Developer Survey 2022" (ht
tps://survey.stackoverflow.co/2022/?utm_s
ource=social-share&utm_medium=social&u
tm_campaign=dev-survey-2022) . Stack
Overflow. Retrieved 12 August 2022.
39. "The State of Developer Ecosystem in 2020
Infographic" (https://www.jetbrains.com/lp/
devecosystem-2020/) . JetBrains:
Developer Tools for Professionals and
Teams. Archived (https://web.archive.org/w
eb/20210301062411/https://www.jetbrain
s.com/lp/devecosystem-2020/) from the
original on 1 March 2021. Retrieved
5 March 2021.
40. "TIOBE Index" (https://www.tiobe.com/tiob
e-index/) . TIOBE. Retrieved 3 January
2023. "The TIOBE Programming
Community index is an indicator of the
popularity of programming languages"
Updated as required.
41. "PYPL PopularitY of Programming
Language index" (https://pypl.github.io/PYP
L.html) . pypl.github.io. Archived (https://w
eb.archive.org/web/20170314232030/http
s://pypl.github.io/PYPL.html) from the
original on 14 March 2017. Retrieved
26 March 2021.
42. Venners, Bill (13 January 2003). "The
Making of Python" (http://www.artima.com/
intv/pythonP.html) . Artima Developer.
Artima. Archived (https://web.archive.org/w
eb/20160901183332/http://www.artima.co
m/intv/pythonP.html) from the original on
1 September 2016. Retrieved 22 March
2007.
43. van Rossum, Guido (29 August 2000).
"SETL (was: Lukewarm about range
literals)" (https://mail.python.org/pipermail/
python-dev/2000-August/008881.html) .
Python-Dev (Mailing list). Archived (https://
web.archive.org/web/20180714064019/htt
ps://mail.python.org/pipermail/python-dev/
2000-August/008881.html) from the
original on 14 July 2018. Retrieved
13 March 2011.
44. van Rossum, Guido (20 January 2009). "A
Brief Timeline of Python" (https://python-his
tory.blogspot.com/2009/01/brief-timeline-o
f-python.html) . The History of Python.
Archived (https://web.archive.org/web/202
00605032200/https://python-history.blogsp
ot.com/2009/01/brief-timeline-of-python.h
tml) from the original on 5 June 2020.
Retrieved 20 January 2009.
45. Fairchild, Carlie (12 July 2018). "Guido van
Rossum Stepping Down from Role as
Python's Benevolent Dictator For Life" (http
s://www.linuxjournal.com/content/guido-va
n-rossum-stepping-down-role-pythons-bene
volent-dictator-life) . Linux Journal.
Archived (https://web.archive.org/web/201
80713192427/https://www.linuxjournal.co
m/content/guido-van-rossum-stepping-dow
n-role-pythons-benevolent-dictator-life)
from the original on 13 July 2018. Retrieved
13 July 2018.
46. "PEP 8100" (https://www.python.org/dev/p
eps/pep-8100/) . Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200604235027/https://www.pyth
on.org/dev/peps/pep-8100/) from the
original on 4 June 2020. Retrieved 4 May
2019.
47. "PEP 13 – Python Language Governance" (h
ttps://www.python.org/dev/peps/pep-001
3/) . Python.org. Archived (https://web.arch
ive.org/web/20210527000035/https://ww
w.python.org/dev/peps/pep-0013/) from
the original on 27 May 2021. Retrieved
25 August 2021.
48. Kuchling, A. M.; Zadka, Moshe (16 October
2000). "What's New in Python 2.0" (https://d
ocs.python.org/whatsnew/2.0.html) .
Python Software Foundation. Archived (http
s://web.archive.org/web/2012102311204
5/http://docs.python.org/whatsnew/2.0.ht
ml) from the original on 23 October 2012.
Retrieved 11 February 2012.
49. van Rossum, Guido (5 April 2006). "PEP
3000 – Python 3000" (https://web.archive.o
rg/web/20160303231513/https://www.pyth
on.org/dev/peps/pep-3000/) . Python
Enhancement Proposals. Python Software
Foundation. Archived from the original (http
s://www.python.org/dev/peps/pep-3000/)
on 3 March 2016. Retrieved 27 June 2009.
50. "2to3 – Automated Python 2 to 3 code
translation" (https://docs.python.org/3/libra
ry/2to3.html) . docs.python.org. Archived
(https://web.archive.org/web/2020060423
2823/https://docs.python.org/3/library/2to
3.html) from the original on 4 June 2020.
Retrieved 2 February 2021.
51. "PEP 373 – Python 2.7 Release Schedule"
(https://legacy.python.org/dev/peps/pep-0
373/) . python.org. Archived (https://web.ar
chive.org/web/20200519075520/https://le
gacy.python.org/dev/peps/pep-0373/)
from the original on 19 May 2020. Retrieved
9 January 2017.
52. "PEP 466 – Network Security
Enhancements for Python 2.7.x" (https://w
ww.python.org/dev/peps/pep-0466/) .
python.org. Archived (https://web.archive.or
g/web/20200604232833/https://www.pyth
on.org/dev/peps/pep-0466/) from the
original on 4 June 2020. Retrieved
9 January 2017.
53. "Sunsetting Python 2" (https://www.python.
org/doc/sunset-python-2/) . Python.org.
Archived (https://web.archive.org/web/202
00112080903/https://www.python.org/do
c/sunset-python-2/) from the original on
12 January 2020. Retrieved 22 September
2019.
54. "PEP 373 – Python 2.7 Release Schedule"
(https://www.python.org/dev/peps/pep-03
73/) . Python.org. Archived (https://web.arc
hive.org/web/20200113033257/https://ww
w.python.org/dev/peps/pep-0373/) from
the original on 13 January 2020. Retrieved
22 September 2019.
55. Langa, Łukasz (19 February 2021). "Python
Insider: Python 3.9.2 and 3.8.8 are now
available" (https://pythoninsider.blogspot.c
om/2021/02/python-392-and-388-are-now-
available.html) . Python Insider. Archived (h
ttps://web.archive.org/web/202102250438
34/https://pythoninsider.blogspot.com/202
1/02/python-392-and-388-are-now-availabl
e.html) from the original on 25 February
2021. Retrieved 26 February 2021.
56. "Red Hat Customer Portal – Access to 24x7
support and knowledge" (https://access.red
hat.com/security/cve/cve-2021-3177) .
access.redhat.com. Archived (https://web.a
rchive.org/web/20210306183700/https://a
ccess.redhat.com/security/cve/cve-2021-
3177) from the original on 6 March 2021.
Retrieved 26 February 2021.
57. "CVE – CVE-2021-3177" (https://cve.mitre.o
rg/cgi-bin/cvename.cgi?name=CVE-2021-
3177) . cve.mitre.org. Archived (https://we
b.archive.org/web/20210227192918/http
s://cve.mitre.org/cgi-bin/cvename.cgi?nam
e=CVE-2021-3177) from the original on 27
February 2021. Retrieved 26 February 2021.
58. "CVE – CVE-2021-23336" (https://cve.mitre.
org/cgi-bin/cvename.cgi?name=CVE-2021-
23336) . cve.mitre.org. Archived (https://we
b.archive.org/web/20210224160700/http
s://cve.mitre.org/cgi-bin/cvename.cgi?nam
e=CVE-2021-23336) from the original on
24 February 2021. Retrieved 26 February
2021.
59. Langa, Łukasz (24 March 2022). "Python
Insider: Python 3.10.4 and 3.9.12 are now
available out of schedule" (https://pythonin
sider.blogspot.com/2022/03/python-3104-
and-3912-are-now-available.html) . Python
Insider. Retrieved 19 April 2022.
60. Langa, Łukasz (16 March 2022). "Python
Insider: Python 3.10.3, 3.9.11, 3.8.13, and
3.7.13 are now available with security
content" (https://pythoninsider.blogspot.co
m/2022/03/python-3103-3911-3813-and-37
13-are-now.html) . Python Insider.
Retrieved 19 April 2022.
61. Langa, Łukasz (17 May 2022). "Python
Insider: Python 3.9.13 is now available" (htt
ps://pythoninsider.blogspot.com/2022/05/
python-3913-is-now-available.html) .
Python Insider. Retrieved 21 May 2022.
62. "Python Insider: Python releases 3.10.7,
3.9.14, 3.8.14, and 3.7.14 are now available"
(https://pythoninsider.blogspot.com/2022/
09/python-releases-3107-3914-3814-and-3
714.html) . pythoninsider.blogspot.com. 7
September 2022. Retrieved 16 September
2022.
63. "CVE - CVE-2020-10735" (https://cve.mitre.
org/cgi-bin/cvename.cgi?name=CVE-2020-
10735) . cve.mitre.org. Retrieved
16 September 2022.
64. corbet (24 October 2022). "Python 3.11
released [LWN.net]" (https://lwn.net/Article
s/912216/) . lwn.net. Retrieved
15 November 2022.
65. "Python Insider: Python 3.12.0 alpha 1
released" (https://blog.python.org/2022/1
0/python-3120-alpha-1-released.html) .
Retrieved 31 October 2022.
66. The Cain Gang Ltd. "Python Metaclasses:
Who? Why? When?" (https://web.archive.or
g/web/20090530030205/http://www.pytho
n.org/community/pycon/dc2004/papers/2
4/metaclasses-pycon.pdf) (PDF). Archived
from the original (https://www.python.org/c
ommunity/pycon/dc2004/papers/24/meta
classes-pycon.pdf) (PDF) on 30 May 2009.
Retrieved 27 June 2009.
67. "3.3. Special method names" (https://docs.
python.org/3.0/reference/datamodel.html#
special-method-names) . The Python
Language Reference. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20181215123146/https://docs.pyth
on.org/3.0/reference/datamodel.html#spec
ial-method-names) from the original on 15
December 2018. Retrieved 27 June 2009.
68. "PyDBC: method preconditions, method
postconditions and class invariants for
Python" (http://www.nongnu.org/pydbc/) .
Archived (https://web.archive.org/web/201
91123231931/http://www.nongnu.org/pyd
bc/) from the original on 23 November
2019. Retrieved 24 September 2011.
69. "Contracts for Python" (http://www.wayforw
ard.net/pycontract/) . Archived (https://we
b.archive.org/web/20200615173404/http://
www.wayforward.net/pycontract/) from
the original on 15 June 2020. Retrieved
24 September 2011.
70. "PyDatalog" (https://sites.google.com/site/
pydatalog/) . Archived (https://web.archive.
org/web/20200613160231/https://sites.go
ogle.com/site/pydatalog/) from the
original on 13 June 2020. Retrieved 22 July
2012.
71. "Extending and Embedding the Python
Interpreter: Reference Counts" (https://doc
s.python.org/extending/extending.html#ref
erence-counts) . Docs.python.org. Archived
(https://web.archive.org/web/2012101806
3230/http://docs.python.org/extending/ext
ending.html#reference-counts) from the
original on 18 October 2012. Retrieved
5 June 2020. "Since Python makes heavy
use of malloc() and free() , it
needs a strategy to avoid memory leaks as
well as the use of freed memory. The
chosen method is called reference
counting."
72. Hettinger, Raymond (30 January 2002).
"PEP 289 – Generator Expressions" (https://
www.python.org/dev/peps/pep-0289/) .
Python Enhancement Proposals. Python
Software Foundation. Archived (https://we
b.archive.org/web/20200614153717/http
s://www.python.org/dev/peps/pep-0289/)
from the original on 14 June 2020.
Retrieved 19 February 2012.
73. "6.5 itertools – Functions creating iterators
for efficient looping" (https://docs.python.or
g/3/library/itertools.html) .
Docs.python.org. Archived (https://web.arc
hive.org/web/20200614153629/https://doc
s.python.org/3/library/itertools.html) from
the original on 14 June 2020. Retrieved
22 November 2016.
74. Peters, Tim (19 August 2004). "PEP 20 –
The Zen of Python" (https://www.python.or
g/dev/peps/pep-0020/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20181226141127/https://www.pyth
on.org/dev/peps/pep-0020/) from the
original on 26 December 2018. Retrieved
24 November 2008.
75. Martelli, Alex; Ravenscroft, Anna; Ascher,
David (2005). Python Cookbook, 2nd
Edition (http://shop.oreilly.com/product/97
80596007973.do) . O'Reilly Media. p. 230.
ISBN 978-0-596-00797-3. Archived (https://
web.archive.org/web/20200223171254/htt
p://shop.oreilly.com/product/97805960079
73.do) from the original on 23 February
2020. Retrieved 14 November 2015.
76. "Python Culture" (https://web.archive.org/w
eb/20140130021902/http://ebeab.com/20
14/01/21/python-culture/) . ebeab. 21
January 2014. Archived from the original (h
ttp://ebeab.com/2014/01/21/python-cultu
re/) on 30 January 2014.
77. "Why is it called Python?" (https://docs.pyth
on.org/3/faq/general.html#why-is-it-called-
python) . General Python FAQ.
Docs.python.org. Archived (https://web.arc
hive.org/web/20121024164224/http://doc
s.python.org/faq/general.html#why-is-it-cal
led-python) from the original on 24
October 2012. Retrieved 3 January 2023.
78. "15 Ways Python Is a Powerful Force on the
Web" (https://web.archive.org/web/201905
11065650/http://insidetech.monster.com/tr
aining/articles/8114-15-ways-python-is-a-p
owerful-force-on-the-web) . Archived from
the original (https://insidetech.monster.co
m/training/articles/8114-15-ways-python-is
-a-powerful-force-on-the-web) on 11 May
2019. Retrieved 3 July 2018.
79. "pprint — Data pretty printer — Python
3.11.0 documentation" (https://docs.pytho
n.org/3/library/pprint.html) .
docs.python.org. Archived (https://web.arc
hive.org/web/20210122224848/https://doc
s.python.org/3/library/pprint.html) from
the original on 22 January 2021. Retrieved
5 November 2022. "stuff = ['spam', 'eggs',
'lumberjack', 'knights', 'ni']"
80. Clark, Robert (26 April 2019). "How to be
Pythonic and why you should care" (https://
towardsdatascience.com/how-to-be-python
ic-and-why-you-should-care-188d63a5037
e) . Medium. Archived (https://web.archive.
org/web/20210813194313/https://towards
datascience.com/how-to-be-pythonic-and-
why-you-should-care-188d63a5037e?gi=dd
6bc15118b3) from the original on 13
August 2021. Retrieved 20 January 2021.
81. "Code Style — The Hitchhiker's Guide to
Python" (https://docs.python-guide.org/writ
ing/style) . docs.python-guide.org. Archived
(https://web.archive.org/web/2021012715
4341/https://docs.python-guide.org/writin
g/style/) from the original on 27 January
2021. Retrieved 20 January 2021.
82. Goodger, David (2008). "Code Like a
Pythonista: Idiomatic Python" (https://davi
d.goodger.org/projects/pycon/2007/idioma
tic/handout.html) . Archived (https://web.ar
chive.org/web/20140527204143/http://pyt
hon.net/~goodger/projects/pycon/2007/idi
omatic/handout.html) from the original on
27 May 2014.
83. "How to think like a Pythonista" (https://gith
ub.com/tdamdouni/Pythonista/blob/maste
r/_WebArticles/How%20to%20think%20lik
e%20a%20Pythonista.md) . python.net.
April 2002 [Thread captured 26 October
2015]. Archived (https://web.archive.org/w
eb/20180323193347/http://python.net/cre
w/mwh/hacks/objectthink.html) from the
original on 23 March 2018 – via GitHub.
84. "Is Python a good language for beginning
programmers?" (https://docs.python.org/fa
q/general.html#is-python-a-good-language-
for-beginning-programmers) . General
Python FAQ. Python Software Foundation.
Archived (https://web.archive.org/web/201
21024164224/http://docs.python.org/faq/g
eneral.html#is-python-a-good-language-for-
beginning-programmers) from the original
on 24 October 2012. Retrieved 21 March
2007.
85. "Myths about indentation in Python" (http
s://web.archive.org/web/2018021816241
0/http://www.secnetix.de/~olli/Python/blo
ck_indentation.hawk) . Secnetix.de.
Archived from the original (http://www.secn
etix.de/~olli/Python/block_indentation.ha
wk) on 18 February 2018. Retrieved
19 April 2011.
86. Guttag, John V. (12 August 2016).
Introduction to Computation and
Programming Using Python: With
Application to Understanding Data. MIT
Press. ISBN 978-0-262-52962-4.
87. "PEP 8 – Style Guide for Python Code" (http
s://www.python.org/dev/peps/pep-0008/) .
Python.org. Archived (https://web.archive.o
rg/web/20190417223549/https://www.pyth
on.org/dev/peps/pep-0008/) from the
original on 17 April 2019. Retrieved
26 March 2019.
88. "8. Errors and Exceptions — Python
3.12.0a0 documentation" (https://docs.pyth
on.org/3.11/tutorial/errors.html) .
docs.python.org. Retrieved 9 May 2022.
89. "Highlights: Python 2.5" (https://www.pytho
n.org/download/releases/2.5/highlights/) .
Python.org. Archived (https://web.archive.o
rg/web/20190804120408/https://www.pyth
on.org/download/releases/2.5/highlight
s/) from the original on 4 August 2019.
Retrieved 20 March 2018.
90. van Rossum, Guido (22 April 2009). "Tail
Recursion Elimination" (http://neopythonic.
blogspot.be/2009/04/tail-recursion-elimina
tion.html) . Neopythonic.blogspot.be.
Archived (https://web.archive.org/web/201
80519225253/http://neopythonic.blogspot.
be/2009/04/tail-recursion-elimination.htm
l) from the original on 19 May 2018.
Retrieved 3 December 2012.
91. van Rossum, Guido (9 February 2006).
"Language Design Is Not Just Solving
Puzzles" (http://www.artima.com/weblogs/
viewpost.jsp?thread=147358) . Artima
forums. Artima. Archived (https://web.archi
ve.org/web/20200117182525/https://www.
artima.com/weblogs/viewpost.jsp?thread=
147358) from the original on 17 January
2020. Retrieved 21 March 2007.
92. van Rossum, Guido; Eby, Phillip J. (10 May
2005). "PEP 342 – Coroutines via Enhanced
Generators" (https://www.python.org/dev/p
eps/pep-0342/) . Python Enhancement
Proposals. Python Software Foundation.
Archived (https://web.archive.org/web/202
00529003739/https://www.python.org/dev/
peps/pep-0342/) from the original on 29
May 2020. Retrieved 19 February 2012.
93. "PEP 380" (https://www.python.org/dev/pe
ps/pep-0380/) . Python.org. Archived (http
s://web.archive.org/web/2020060423382
1/https://www.python.org/dev/peps/pep-0
380/) from the original on 4 June 2020.
Retrieved 3 December 2012.
94. "division" (https://docs.python.org) .
python.org. Archived (https://web.archive.or
g/web/20060720033244/http://docs.pytho
n.org/) from the original on 20 July 2006.
Retrieved 30 July 2014.
95. "PEP 0465 – A dedicated infix operator for
matrix multiplication" (https://www.python.
org/dev/peps/pep-0465/) . python.org.
Archived (https://web.archive.org/web/202
00604224255/https://www.python.org/dev/
peps/pep-0465/) from the original on 4
June 2020. Retrieved 1 January 2016.
96. "Python 3.5.1 Release and Changelog" (http
s://www.python.org/downloads/release/pyt
hon-351/) . python.org. Archived (https://w
eb.archive.org/web/20200514034938/http
s://www.python.org/downloads/release/pyt
hon-351/) from the original on 14 May
2020. Retrieved 1 January 2016.
97. "What's New in Python 3.8" (https://docs.py
thon.org/3.8/whatsnew/3.8.html) .
Archived (https://web.archive.org/web/202
00608124345/https://docs.python.org/3.8/
whatsnew/3.8.html) from the original on 8
June 2020. Retrieved 14 October 2019.
98. van Rossum, Guido; Hettinger, Raymond (7
February 2003). "PEP 308 – Conditional
Expressions" (https://www.python.org/dev/
peps/pep-0308/) . Python Enhancement
Proposals. Python Software Foundation.
Archived (https://web.archive.org/web/201
60313113147/https://www.python.org/dev/
peps/pep-0308/) from the original on 13
March 2016. Retrieved 13 July 2011.
99. "4. Built-in Types — Python 3.6.3rc1
documentation" (https://docs.python.org/3/
library/stdtypes.html#tuple) . python.org.
Archived (https://web.archive.org/web/202
00614194325/https://docs.python.org/3/li
brary/stdtypes.html#tuple) from the
original on 14 June 2020. Retrieved
1 October 2017.
100. "5.3. Tuples and Sequences — Python
3.7.1rc2 documentation" (https://docs.pyth
on.org/3/tutorial/datastructures.html#tuple
s-and-sequences) . python.org. Archived (ht
tps://web.archive.org/web/2020061005004
7/https://docs.python.org/3/tutorial/datast
ructures.html#tuples-and-sequences) from
the original on 10 June 2020. Retrieved
17 October 2018.
101. "PEP 498 – Literal String Interpolation" (http
s://www.python.org/dev/peps/pep-0498/) .
python.org. Archived (https://web.archive.or
g/web/20200615184141/https://www.pyth
on.org/dev/peps/pep-0498/) from the
original on 15 June 2020. Retrieved
8 March 2017.
102. "Why must 'self' be used explicitly in
method definitions and calls?" (https://doc
s.python.org/faq/design.html#why-must-se
lf-be-used-explicitly-in-method-definitions-a
nd-calls) . Design and History FAQ. Python
Software Foundation. Archived (https://we
b.archive.org/web/20121024164243/http://
docs.python.org/faq/design.html#why-mus
t-self-be-used-explicitly-in-method-definition
s-and-calls) from the original on 24
October 2012. Retrieved 19 February 2012.
103. Sweigart, Al (2020). Beyond the Basic Stuff
with Python: Best Practices for Writing
Clean Code (https://books.google.com/boo
ks?id=7GUKEAAAQBAJ&pg=PA322) . No
Starch Press. p. 322. ISBN 978-1-59327-
966-0. Archived (https://web.archive.org/w
eb/20210813194312/https://books.google.
com/books?id=7GUKEAAAQBAJ&pg=PA3
22) from the original on 13 August 2021.
Retrieved 7 July 2021.
104. "The Python Language Reference, section
3.3. New-style and classic classes, for
release 2.7.1" (https://web.archive.org/we
b/20121026063834/http://docs.python.or
g/reference/datamodel.html#new-style-and
-classic-classes) . Archived from the
original (https://docs.python.org/reference/
datamodel.html#new-style-and-classic-cla
sses) on 26 October 2012. Retrieved
12 January 2011.
105. "Type hinting for Python" (https://lwn.net/Ar
ticles/627418/) . LWN.net. 24 December
2014. Archived (https://web.archive.org/we
b/20190620000057/https://lwn.net/Article
s/627418/) from the original on 20 June
2019. Retrieved 5 May 2015.
106. "mypy – Optional Static Typing for Python"
(http://mypy-lang.org/) . Archived (https://
web.archive.org/web/20200606192012/htt
p://mypy-lang.org/) from the original on 6
June 2020. Retrieved 28 January 2017.
107. "15. Floating Point Arithmetic: Issues and
Limitations — Python 3.8.3 documentation"
(https://docs.python.org/3.8/tutorial/floatin
gpoint.html#representation-error) .
docs.python.org. Archived (https://web.arc
hive.org/web/20200606113842/https://doc
s.python.org/3.8/tutorial/floatingpoint.html
#representation-error) from the original on
6 June 2020. Retrieved 6 June 2020.
"Almost all machines today (November
2000) use IEEE-754 floating point
arithmetic, and almost all platforms map
Python floats to IEEE-754 "double
precision"."
108. Zadka, Moshe; van Rossum, Guido (11
March 2001). "PEP 237 – Unifying Long
Integers and Integers" (https://www.python.
org/dev/peps/pep-0237/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200528063237/https://www.pyth
on.org/dev/peps/pep-0237/) from the
original on 28 May 2020. Retrieved
24 September 2011.
109. "Built-in Types" (https://docs.python.org/3/l
ibrary/stdtypes.html#typesseq-range) .
Archived (https://web.archive.org/web/202
00614194325/https://docs.python.org/3/li
brary/stdtypes.html#typesseq-range) from
the original on 14 June 2020. Retrieved
3 October 2019.
110. "PEP 465 – A dedicated infix operator for
matrix multiplication" (https://legacy.pytho
n.org/dev/peps/pep-0465/) . python.org.
Archived (https://web.archive.org/web/202
00529200310/https://legacy.python.org/de
v/peps/pep-0465/) from the original on 29
May 2020. Retrieved 3 July 2018.
111. Zadka, Moshe; van Rossum, Guido (11
March 2001). "PEP 238 – Changing the
Division Operator" (https://www.python.org/
dev/peps/pep-0238/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200528115550/https://www.pyth
on.org/dev/peps/pep-0238/) from the
original on 28 May 2020. Retrieved
23 October 2013.
112. "Why Python's Integer Division Floors" (http
s://python-history.blogspot.com/2010/08/
why-pythons-integer-division-floors.html) .
24 August 2010. Archived (https://web.arch
ive.org/web/20200605151500/https://pyth
on-history.blogspot.com/2010/08/why-pyth
ons-integer-division-floors.html) from the
original on 5 June 2020. Retrieved
25 August 2010.
113. "round" (https://docs.python.org/py3k/librar
y/functions.html#round) , The Python
standard library, release 3.2, §2: Built-in
functions, archived (https://web.archive.or
g/web/20121025141808/http://docs.pytho
n.org/py3k/library/functions.html#round)
from the original on 25 October 2012,
retrieved 14 August 2011
114. "round" (https://docs.python.org/library/fun
ctions.html#round) , The Python standard
library, release 2.7, §2: Built-in functions,
archived (https://web.archive.org/web/201
21027081602/http://docs.python.org/librar
y/functions.html#round) from the original
on 27 October 2012, retrieved 14 August
2011
115. Beazley, David M. (2009). Python Essential
Reference (https://archive.org/details/pyth
onessentialr00beaz_036) (4th ed.). p. 66
(https://archive.org/details/pythonessential
r00beaz_036/page/n90) .
ISBN 9780672329784.
116. Kernighan, Brian W.; Ritchie, Dennis M.
(1988). The C Programming Language
(2nd ed.). p. 206 (https://archive.org/detail
s/cprogramminglang00bria/page/206) .
117. Batista, Facundo. "PEP 0327 – Decimal
Data Type" (https://www.python.org/dev/pe
ps/pep-0327/) . Python.org. Archived (http
s://web.archive.org/web/2020060423483
0/https://www.python.org/dev/peps/pep-0
327/) from the original on 4 June 2020.
Retrieved 26 September 2015.
118. "What's New in Python 2.6 — Python v2.6.9
documentation" (https://docs.python.org/2.
6/whatsnew/2.6.html) . docs.python.org.
Archived (https://web.archive.org/web/201
91223213856/https://docs.python.org/2.6/
whatsnew/2.6.html) from the original on
23 December 2019. Retrieved
26 September 2015.
119. "10 Reasons Python Rocks for Research
(And a Few Reasons it Doesn't) – Hoyt
Koepke" (https://web.archive.org/web/2020
0531211840/https://www.stat.washington.
edu/~hoytak/blog/whypython.html) .
www.stat.washington.edu. Archived from
the original (https://www.stat.washington.e
du/~hoytak/blog/whypython.html) on 31
May 2020. Retrieved 3 February 2019.
120. Shell, Scott (17 June 2014). "An
introduction to Python for scientific
computing" (https://engineering.ucsb.edu/
~shell/che210d/python.pdf) (PDF).
Archived (https://web.archive.org/web/201
90204014642/https://engineering.ucsb.ed
u/~shell/che210d/python.pdf) (PDF) from
the original on 4 February 2019. Retrieved
3 February 2019.
121. Piotrowski, Przemyslaw (July 2006). "Build
a Rapid Web Development Environment for
Python Server Pages and Oracle" (http://ww
w.oracle.com/technetwork/articles/piotrow
ski-pythoncore-084049.html) . Oracle
Technology Network. Oracle. Archived (http
s://web.archive.org/web/2019040212443
5/https://www.oracle.com/technetwork/arti
cles/piotrowski-pythoncore-084049.html)
from the original on 2 April 2019. Retrieved
12 March 2012.
122. Batista, Facundo (17 October 2003). "PEP
327 – Decimal Data Type" (https://www.pyt
hon.org/dev/peps/pep-0327/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200604234830/https://www.pyth
on.org/dev/peps/pep-0327/) from the
original on 4 June 2020. Retrieved
24 November 2008.
123. Eby, Phillip J. (7 December 2003). "PEP
333 – Python Web Server Gateway
Interface v1.0" (https://www.python.org/de
v/peps/pep-0333/) . Python Enhancement
Proposals. Python Software Foundation.
Archived (https://web.archive.org/web/202
00614170344/https://www.python.org/dev/
peps/pep-0333/) from the original on 14
June 2020. Retrieved 19 February 2012.
124. "Modulecounts" (http://www.modulecounts.
com/) . Modulecounts. 14 November 2022.
Archived (https://web.archive.org/web/202
20626171519/http://www.modulecounts.c
om/) from the original on 26 June 2022.
125. Enthought, Canopy. "Canopy" (https://web.a
rchive.org/web/20170715151703/https://w
ww.enthought.com/products/canopy/) .
www.enthought.com. Archived from the
original (https://www.enthought.com/produ
cts/canopy/) on 15 July 2017. Retrieved
20 August 2016.
126. "PEP 7 – Style Guide for C Code |
peps.python.org" (https://peps.python.org/
pep-0007/) . peps.python.org. Retrieved
28 April 2022.
127. "Mailman 3 Why aren't we allowing the use
of C11? - Python-Dev - python.org" (https://
mail.python.org/archives/list/python-dev@
python.org/thread/PLXETSQE7PRFXBXN2Q
Y6VNPKUTM6I7OD/) . mail.python.org.
Archived (https://web.archive.org/web/202
10414203313/https://mail.python.org/archi
ves/list/python-dev@python.org/thread/PL
XETSQE7PRFXBXN2QY6VNPKUTM6I7O
D/) from the original on 14 April 2021.
Retrieved 1 March 2021.
128. "Issue 35473: Intel compiler (icc) does not
fully support C11 Features, including
atomics – Python tracker" (https://bugs.pyt
hon.org/issue35473) . bugs.python.org.
Archived (https://web.archive.org/web/202
10414203314/https://bugs.python.org/issu
e35473) from the original on 14 April
2021. Retrieved 1 March 2021.
129. "4. Building C and C++ Extensions — Python
3.9.2 documentation" (https://docs.python.
org/3/extending/building.html) .
docs.python.org. Archived (https://web.arc
hive.org/web/20210303002519/https://doc
s.python.org/3/extending/building.html)
from the original on 3 March 2021.
Retrieved 1 March 2021.
130. van Rossum, Guido (5 June 2001). "PEP 7 –
Style Guide for C Code" (https://www.pytho
n.org/dev/peps/pep-0007/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200601203908/https://www.pyth
on.org/dev/peps/pep-0007/) from the
original on 1 June 2020. Retrieved
24 November 2008.
131. "CPython byte code" (https://docs.python.or
g/3/library/dis.html#python-bytecode-instr
uctions) . Docs.python.org. Archived (http
s://web.archive.org/web/2020060515154
2/https://docs.python.org/3/library/dis.htm
l#python-bytecode-instructions) from the
original on 5 June 2020. Retrieved
16 February 2016.
132. "Python 2.5 internals" (http://www.troeger.e
u/teaching/pythonvm08.pdf) (PDF).
Archived (https://web.archive.org/web/201
20806094951/http://www.troeger.eu/teachi
ng/pythonvm08.pdf) (PDF) from the
original on 6 August 2012. Retrieved
19 April 2011.
133. "Changelog — Python 3.9.0 documentation"
(https://docs.python.org/release/3.9.0/wha
tsnew/changelog.html#changelog) .
docs.python.org. Archived (https://web.arc
hive.org/web/20210207001142/https://doc
s.python.org/release/3.9.0/whatsnew/chan
gelog.html#changelog) from the original
on 7 February 2021. Retrieved 8 February
2021.
134. "Download Python" (https://www.python.or
g/downloads/release/python-391) .
Python.org. Archived (https://web.archive.o
rg/web/20201208045225/https://www.pyth
on.org/downloads/release/python-391/)
from the original on 8 December 2020.
Retrieved 13 December 2020.
135. "history [vmspython]" (https://www.vmspyth
on.org/doku.php?id=history) .
www.vmspython.org. Archived (https://web.
archive.org/web/20201202194743/https://
www.vmspython.org/doku.php?id=history)
from the original on 2 December 2020.
Retrieved 4 December 2020.
136. "An Interview with Guido van Rossum" (htt
p://www.oreilly.com/pub/a/oreilly/frank/ros
sum_1099.html) . Oreilly.com. Archived (htt
ps://web.archive.org/web/2014071622265
2/http://oreilly.com/pub/a/oreilly/frank/ros
sum_1099.html) from the original on 16
July 2014. Retrieved 24 November 2008.
137. "Download Python for Other Platforms" (htt
ps://www.python.org/download/other/) .
Python.org. Archived (https://web.archive.o
rg/web/20201127015815/https://www.pyth
on.org/download/other/) from the original
on 27 November 2020. Retrieved
4 December 2020.
138. "PyPy compatibility" (https://pypy.org/comp
at.html) . Pypy.org. Archived (https://web.ar
chive.org/web/20200606041845/https://w
ww.pypy.org/compat.html) from the
original on 6 June 2020. Retrieved
3 December 2012.
139. Team, The PyPy (28 December 2019).
"Download and Install" (https://www.pypy.or
g/download.html) . PyPy. Retrieved
8 January 2022.
140. "speed comparison between CPython and
Pypy" (https://speed.pypy.org/) .
Speed.pypy.org. Archived (https://web.archi
ve.org/web/20210510014902/https://spee
d.pypy.org/) from the original on 10 May
2021. Retrieved 3 December 2012.
141. "Application-level Stackless features —
PyPy 2.0.2 documentation" (http://doc.pyp
y.org/en/latest/stackless.html) .
Doc.pypy.org. Archived (https://web.archiv
e.org/web/20200604231513/https://doc.py
py.org/en/latest/stackless.html) from the
original on 4 June 2020. Retrieved 17 July
2013.
142. "Python-for-EV3" (https://education.lego.co
m/en-us/support/mindstorms-ev3/python-f
or-ev3) . LEGO Education. Archived (https://
web.archive.org/web/20200607234814/htt
ps://education.lego.com/en-us/support/mi
ndstorms-ev3/python-for-ev3) from the
original on 7 June 2020. Retrieved 17 April
2019.
143. Yegulalp, Serdar (29 October 2020). "Pyston
returns from the dead to speed Python" (htt
ps://www.infoworld.com/article/3587591/p
yston-returns-from-the-dead-to-speed-pytho
n.html) . InfoWorld. Archived (https://web.a
rchive.org/web/20210127113233/https://w
ww.infoworld.com/article/3587591/pyston-
returns-from-the-dead-to-speed-python.ht
ml) from the original on 27 January 2021.
Retrieved 26 January 2021.
144. "cinder: Instagram's performance-oriented
fork of CPython" (https://github.com/faceb
ookincubator/cinder) . GitHub. Archived (ht
tps://web.archive.org/web/2021050411250
0/https://github.com/facebookincubator/c
inder) from the original on 4 May 2021.
Retrieved 4 May 2021.
145. "Plans for optimizing Python" (https://code.
google.com/p/unladen-swallow/wiki/Proje
ctPlan) . Google Project Hosting. 15
December 2009. Archived (https://web.arch
ive.org/web/20160411181848/https://cod
e.google.com/p/unladen-swallow/wiki/Proj
ectPlan) from the original on 11 April
2016. Retrieved 24 September 2011.
146. "Python on the Nokia N900" (http://www.st
ochasticgeometry.ie/2010/04/29/python-o
n-the-nokia-n900/) . Stochastic Geometry.
29 April 2010. Archived (https://web.archiv
e.org/web/20190620000053/http://www.st
ochasticgeometry.ie/2010/04/29/python-o
n-the-nokia-n900/) from the original on 20
June 2019. Retrieved 9 July 2015.
147. "Brython" (https://brython.info/) .
brython.info. Archived (https://web.archive.
org/web/20180803065954/http://brython.i
nfo/) from the original on 3 August 2018.
Retrieved 21 January 2021.
148. "Transcrypt – Python in the browser" (http
s://www.transcrypt.org) . transcrypt.org.
Archived (https://web.archive.org/web/201
80819133303/http://www.transcrypt.org/)
from the original on 19 August 2018.
Retrieved 22 December 2020.
149. "Transcrypt: Anatomy of a Python to
JavaScript Compiler" (https://www.infoq.co
m/articles/transcrypt-python-javascript-co
mpiler/) . InfoQ. Archived (https://web.archi
ve.org/web/20201205193339/https://www.
infoq.com/articles/transcrypt-python-javas
cript-compiler/) from the original on 5
December 2020. Retrieved 20 January
2021.
150. "Nuitka Home | Nuitka Home" (http://nuitk
a.net/) . nuitka.net. Archived (https://web.a
rchive.org/web/20200530211233/https://n
uitka.net/) from the original on 30 May
2020. Retrieved 18 August 2017.
151. Borderies, Olivier (24 January 2019).
"Pythran: Python at C++ speed !" (https://m
edium.com/@olivier.borderies/pythran-pyth
on-at-c-speed-518f26af60e8) . Medium.
Archived (https://web.archive.org/web/202
00325171400/https://medium.com/@olivie
r.borderies/pythran-python-at-c-speed-518f
26af60e8) from the original on 25 March
2020. Retrieved 25 March 2020.
152. "Pythran — Pythran 0.9.5 documentation" (h
ttps://pythran.readthedocs.io/en/latest/) .
pythran.readthedocs.io. Archived (https://w
eb.archive.org/web/20200219081337/http
s://pythran.readthedocs.io/en/latest/)
from the original on 19 February 2020.
Retrieved 25 March 2020.
153. Guelton, Serge; Brunet, Pierrick; Amini,
Mehdi; Merlini, Adrien; Corbillon, Xavier;
Raynaud, Alan (16 March 2015). "Pythran:
enabling static optimization of scientific
Python programs" (https://doi.org/10.108
8%2F1749-4680%2F8%2F1%2F014001) .
Computational Science & Discovery. IOP
Publishing. 8 (1): 014001.
doi:10.1088/1749-4680/8/1/014001 (http
s://doi.org/10.1088%2F1749-4680%2F8%2
F1%2F014001) . ISSN 1749-4699 (https://w
ww.worldcat.org/issn/1749-4699) .
154. The Python → 11l → C++ transpiler (http
s://11l-lang.org/transpiler)
155. "google/grumpy" (https://github.com/googl
e/grumpy) . 10 April 2020. Archived (http
s://web.archive.org/web/2020041505491
9/https://github.com/google/grumpy)
from the original on 15 April 2020.
Retrieved 25 March 2020 – via GitHub.
156. "Projects" (https://opensource.google/proj
ects/) . opensource.google. Archived (http
s://web.archive.org/web/2020042419124
8/https://opensource.google/projects/)
from the original on 24 April 2020.
Retrieved 25 March 2020.
157. Francisco, Thomas Claburn in San.
"Google's Grumpy code makes Python Go"
(https://www.theregister.com/2017/01/05/
googles_grumpy_makes_python_go/) .
www.theregister.com. Archived (https://we
b.archive.org/web/20210307165521/http
s://www.theregister.com/2017/01/05/goog
les_grumpy_makes_python_go/) from the
original on 7 March 2021. Retrieved
20 January 2021.
158. "GitHub – IronLanguages/ironpython3:
Implementation of Python 3.x for .NET
Framework that is built on top of the
Dynamic Language Runtime" (https://githu
b.com/IronLanguages/ironpython3) .
GitHub. Archived (https://web.archive.org/
web/20210928101250/https://github.com/
IronLanguages/ironpython3) from the
original on 28 September 2021.
159. "IronPython.net /"
(https://ironpython.net/) . ironpython.net.
Archived (https://web.archive.org/web/202
10417064418/https://ironpython.net/)
from the original on 17 April 2021.
160. "Jython FAQ" (https://www.jython.org/jytho
n-old-sites/archive/22/userfaq.html) .
www.jython.org. Archived (https://web.archi
ve.org/web/20210422055726/https://www.
jython.org/jython-old-sites/archive/22/user
faq.html) from the original on 22 April
2021. Retrieved 22 April 2021.
161. Murri, Riccardo (2013). Performance of
Python runtimes on a non-numeric
scientific code. European Conference on
Python in Science (EuroSciPy).
arXiv:1404.6388 (https://arxiv.org/abs/140
4.6388) . Bibcode:2014arXiv1404.6388M
(https://ui.adsabs.harvard.edu/abs/2014ar
Xiv1404.6388M) .
162. "The Computer Language Benchmarks
Game" (https://benchmarksgame-team.pag
es.debian.net/benchmarksgame/fastest/py
thon.html) . Archived (https://web.archive.o
rg/web/20200614210246/https://benchma
rksgame-team.pages.debian.net/benchmar
ksgame/fastest/python.html) from the
original on 14 June 2020. Retrieved 30 April
2020.
163. Warsaw, Barry; Hylton, Jeremy; Goodger,
David (13 June 2000). "PEP 1 – PEP
Purpose and Guidelines" (https://www.pyth
on.org/dev/peps/pep-0001/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200606042011/https://www.pyth
on.org/dev/peps/pep-0001/) from the
original on 6 June 2020. Retrieved 19 April
2011.
164. "PEP 8 – Style Guide for Python Code" (http
s://www.python.org/dev/peps/pep-0008/) .
Python.org. Archived (https://web.archive.o
rg/web/20190417223549/https://www.pyth
on.org/dev/peps/pep-0008/) from the
original on 17 April 2019. Retrieved
26 March 2019.
165. Cannon, Brett. "Guido, Some Guys, and a
Mailing List: How Python is Developed" (htt
ps://web.archive.org/web/2009060113434
2/http://www.python.org/dev/intro/) .
python.org. Python Software Foundation.
Archived from the original (https://www.pyt
hon.org/dev/intro/) on 1 June 2009.
Retrieved 27 June 2009.
166. "Moving Python's bugs to GitHub [LWN.net]"
(https://lwn.net/Articles/885854/) .
167. "Python Developer's Guide — Python
Developer's Guide" (https://devguide.pytho
n.org/) . devguide.python.org. Archived (htt
ps://web.archive.org/web/2020110903250
1/https://devguide.python.org/) from the
original on 9 November 2020. Retrieved
17 December 2019.
168. Hughes, Owen (24 May 2021).
"Programming languages: Why Python 4.0
might never arrive, according to its creator"
(https://www.techrepublic.com/article/prog
ramming-languages-why-python-4-0-will-pro
bably-never-arrive-according-to-its-creato
r/) . TechRepublic. Retrieved 16 May 2022.
169. "PEP 602 – Annual Release Cycle for
Python" (https://www.python.org/dev/peps/
pep-0602/) . Python.org. Archived (https://
web.archive.org/web/20200614202755/htt
ps://www.python.org/dev/peps/pep-060
2/) from the original on 14 June 2020.
Retrieved 6 November 2019.
170. "Changing the Python release cadence
[LWN.net]" (https://lwn.net/Articles/80277
7/) . lwn.net. Archived (https://web.archive.
org/web/20191106170153/https://lwn.net/
Articles/802777/) from the original on 6
November 2019. Retrieved 6 November
2019.
171. Norwitz, Neal (8 April 2002). "[Python-Dev]
Release Schedules (was Stability &
change)" (https://mail.python.org/pipermai
l/python-dev/2002-April/022739.html) .
Archived (https://web.archive.org/web/201
81215122750/https://mail.python.org/piper
mail/python-dev/2002-April/022739.html)
from the original on 15 December 2018.
Retrieved 27 June 2009.
172. Aahz; Baxter, Anthony (15 March 2001).
"PEP 6 – Bug Fix Releases" (https://www.py
thon.org/dev/peps/pep-0006/) . Python
Enhancement Proposals. Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200605001318/https://www.pyth
on.org/dev/peps/pep-0006/) from the
original on 5 June 2020. Retrieved 27 June
2009.
173. "Python Buildbot" (https://www.python.org/
dev/buildbot/) . Python Developer's Guide.
Python Software Foundation. Archived (http
s://web.archive.org/web/2020060500132
2/https://www.python.org/dev/buildbot/)
from the original on 5 June 2020. Retrieved
24 September 2011.
174. "1. Extending Python with C or C++ —
Python 3.9.1 documentation" (https://docs.
python.org/3/extending/extending.html) .
docs.python.org. Archived (https://web.arc
hive.org/web/20200623232830/https://doc
s.python.org/3/extending/extending.html)
from the original on 23 June 2020.
Retrieved 14 February 2021.
175. "PEP 623 – Remove wstr from Unicode" (htt
ps://www.python.org/dev/peps/pep-062
3/) . Python.org. Archived (https://web.arch
ive.org/web/20210305153214/https://ww
w.python.org/dev/peps/pep-0623/) from
the original on 5 March 2021. Retrieved
14 February 2021.
176. "PEP 634 – Structural Pattern Matching:
Specification" (https://www.python.org/de
v/peps/pep-0634/) . Python.org. Archived
(https://web.archive.org/web/2021050600
5315/https://www.python.org/dev/peps/pe
p-0634/) from the original on 6 May 2021.
Retrieved 14 February 2021.
177. "Documentation Tools" (https://wiki.python.
org/moin/DocumentationTools) .
Python.org. Archived (https://web.archive.o
rg/web/20201111173635/https://wiki.pyth
on.org/moin/DocumentationTools) from
the original on 11 November 2020.
Retrieved 22 March 2021.
178. "Whetting Your Appetite" (https://docs.pyth
on.org/tutorial/appetite.html) . The Python
Tutorial. Python Software Foundation.
Archived (https://web.archive.org/web/201
21026063559/http://docs.python.org/tutori
al/appetite.html) from the original on 26
October 2012. Retrieved 20 February 2012.
179. "In Python, should I use else after a return
in an if block?" (https://stackoverflow.com/
questions/5033906/in-python-should-i-use-
else-after-a-return-in-an-if-block) . Stack
Overflow. Stack Exchange. 17 February
2011. Archived (https://web.archive.org/we
b/20190620000050/https://stackoverflow.c
om/questions/5033906/in-python-should-i-
use-else-after-a-return-in-an-if-block) from
the original on 20 June 2019. Retrieved
6 May 2011.
180. Lutz, Mark (2009). Learning Python:
Powerful Object-Oriented Programming (htt
ps://books.google.com/books?id=1HxWGe
zDZcgC&pg=PA17) . O'Reilly Media, Inc.
p. 17. ISBN 9781449379322. Archived (http
s://web.archive.org/web/2017071704401
2/https://books.google.com/books?id=1Hx
WGezDZcgC&pg=PA17) from the original
on 17 July 2017. Retrieved 9 May 2017.
181. Fehily, Chris (2002). Python (https://books.
google.com/books?id=carqdIdfVlYC&pg=P
R15) . Peachpit Press. p. xv.
ISBN 9780201748840. Archived (https://we
b.archive.org/web/20170717044040/http
s://books.google.com/books?id=carqdIdfVl
YC&pg=PR15) from the original on 17 July
2017. Retrieved 9 May 2017.
182. Blake, Troy (18 January 2021). "TIOBE Index
for January 2021" (https://seniordba.wordp
ress.com/2021/01/18/tiobe-index-for-janua
ry-2021/) . Technology News and
Information by SeniorDBA. Archived (http
s://web.archive.org/web/2021032114325
3/https://seniordba.wordpress.com/2021/0
1/18/tiobe-index-for-january-2021/) from
the original on 21 March 2021. Retrieved
26 February 2021.
183. Prechelt, Lutz (14 March 2000). "An
empirical comparison of C, C++, Java, Perl,
Python, Rexx, and Tcl" (http://page.mi.fu-be
rlin.de/prechelt/Biblio/jccpprt_computer20
00.pdf) (PDF). Archived (https://web.archiv
e.org/web/20200103050915/http://page.m
i.fu-berlin.de/prechelt/Biblio/jccpprt_comp
uter2000.pdf) (PDF) from the original on 3
January 2020. Retrieved 30 August 2013.
184. "Quotes about Python" (https://www.pytho
n.org/about/quotes/) . Python Software
Foundation. Archived (https://web.archive.o
rg/web/20200603135201/https://www.pyth
on.org/about/quotes/) from the original on
3 June 2020. Retrieved 8 January 2012.
185. "Organizations Using Python" (https://wiki.p
ython.org/moin/OrganizationsUsingPytho
n) . Python Software Foundation. Archived
(https://web.archive.org/web/2018082107
5931/https://wiki.python.org/moin/Organiz
ationsUsingPython) from the original on
21 August 2018. Retrieved 15 January
2009.
186. "Python : the holy grail of programming" (htt
p://cdsweb.cern.ch/journal/CERNBulletin/2
006/31/News%20Articles/974627?ln=en) .
CERN Bulletin. CERN Publications
(31/2006). 31 July 2006. Archived (https://
archive.today/20130115191843/http://cds
web.cern.ch/journal/CERNBulletin/2006/3
1/News%20Articles/974627?ln=en) from
the original on 15 January 2013. Retrieved
11 February 2012.
187. Shafer, Daniel G. (17 January 2003).
"Python Streamlines Space Shuttle Mission
Design" (https://www.python.org/about/suc
cess/usa/) . Python Software Foundation.
Archived (https://web.archive.org/web/202
00605093424/https://www.python.org/abo
ut/success/usa/) from the original on 5
June 2020. Retrieved 24 November 2008.
188. "Tornado: Facebook's Real-Time Web
Framework for Python – Facebook for
Developers" (https://developers.facebook.c
om/blog/post/301) . Facebook for
Developers. Archived (https://web.archive.o
rg/web/20190219031313/https://developer
s.facebook.com/blog/post/301) from the
original on 19 February 2019. Retrieved
19 June 2018.
189. "What Powers Instagram: Hundreds of
Instances, Dozens of Technologies" (http
s://instagram-engineering.com/what-power
s-instagram-hundreds-of-instances-dozens-
of-technologies-adf2e22da2ad) . Instagram
Engineering. 11 December 2016. Archived
(https://web.archive.org/web/2020061518
3410/https://instagram-engineering.com/w
hat-powers-instagram-hundreds-of-instance
s-dozens-of-technologies-adf2e22da2ad)
from the original on 15 June 2020.
Retrieved 27 May 2019.
190. "How we use Python at Spotify" (https://lab
s.spotify.com/2013/03/20/how-we-use-pyt
hon-at-spotify/) . Spotify Labs. 20 March
2013. Archived (https://web.archive.org/we
b/20200610005143/https://labs.spotify.co
m/2013/03/20/how-we-use-python-at-spot
ify/) from the original on 10 June 2020.
Retrieved 25 July 2018.
191. Fortenberry, Tim (17 January 2003).
"Industrial Light & Magic Runs on Python"
(https://www.python.org/about/success/il
m/) . Python Software Foundation.
Archived (https://web.archive.org/web/202
00606042020/https://www.python.org/abo
ut/success/ilm/) from the original on 6
June 2020. Retrieved 11 February 2012.
192. Taft, Darryl K. (5 March 2007). "Python
Slithers into Systems" (http://www.eweek.c
om/c/a/Application-Development/Python-S
lithers-into-Systems/) . eWeek.com. Ziff
Davis Holdings. Archived (https://web.archi
ve.org/web/20210813194304/https://www.
eweek.com/development/python-slithers-in
to-systems/) from the original on 13
August 2021. Retrieved 24 September
2011.
193. GitHub – reddit-archive/reddit: historical
code from reddit.com. (https://github.com/
reddit-archive/reddit) , The Reddit Archives,
archived (https://web.archive.org/web/202
00601104939/https://github.com/reddit-ar
chive/reddit) from the original on 1 June
2020, retrieved 20 March 2019
194. "Usage statistics and market share of
Python for websites" (http://w3techs.com/t
echnologies/details/pl-python/all/all) .
2012. Archived (https://web.archive.org/we
b/20210813194305/https://w3techs.com/t
echnologies/details/pl-python) from the
original on 13 August 2021. Retrieved
18 December 2012.
195. Oliphant, Travis (2007). "Python for
Scientific Computing" (https://www.h2desk.
com/blog/python-scientific-computing/) .
Computing in Science and Engineering. 9
(3): 10–20. Bibcode:2007CSE.....9c..10O (ht
tps://ui.adsabs.harvard.edu/abs/2007CS
E.....9c..10O) . CiteSeerX 10.1.1.474.6460
(https://citeseerx.ist.psu.edu/viewdoc/sum
mary?doi=10.1.1.474.6460) .
doi:10.1109/MCSE.2007.58 (https://doi.or
g/10.1109%2FMCSE.2007.58) .
S2CID 206457124 (https://api.semanticsch
olar.org/CorpusID:206457124) . Archived
(https://web.archive.org/web/2020061519
3226/https://www.h2desk.com/blog/pytho
n-scientific-computing/) from the original
on 15 June 2020. Retrieved 10 April 2015.
196. Millman, K. Jarrod; Aivazis, Michael (2011).
"Python for Scientists and Engineers" (htt
p://www.computer.org/csdl/mags/cs/201
1/02/mcs2011020009.html) . Computing
in Science and Engineering. 13 (2): 9–12.
Bibcode:2011CSE....13b...9M (https://ui.ads
abs.harvard.edu/abs/2011CSE....13b...9M)
. doi:10.1109/MCSE.2011.36 (https://doi.or
g/10.1109%2FMCSE.2011.36) . Archived (h
ttps://web.archive.org/web/201902190314
39/https://www.computer.org/csdl/mags/c
s/2011/02/mcs2011020009.html) from
the original on 19 February 2019. Retrieved
7 July 2014.
197. Science education with SageMath (https://
web.archive.org/web/20200615180428/htt
p://visual.icse.us.edu.pl/methodology/why_
Sage.html) , Innovative Computing in
Science Education, archived from the
original (http://visual.icse.us.edu.pl/method
ology/why_Sage.html) on 15 June 2020,
retrieved 22 April 2019
198. "OpenCV: OpenCV-Python Tutorials" (http
s://docs.opencv.org/3.4.9/d6/d00/tutorial_
py_root.html) . docs.opencv.org. Archived
(https://web.archive.org/web/2020092306
3145/https://docs.opencv.org/3.4.9/d6/d0
0/tutorial_py_root.html) from the original
on 23 September 2020. Retrieved
14 September 2020.
199. Dean, Jeff; Monga, Rajat; et al. (9 November
2015). "TensorFlow: Large-scale machine
learning on heterogeneous systems" (htt
p://download.tensorflow.org/paper/whitepa
per2015.pdf) (PDF). TensorFlow.org.
Google Research. Archived (https://web.arc
hive.org/web/20151120004649/http://dow
nload.tensorflow.org/paper/whitepaper20
15.pdf) (PDF) from the original on 20
November 2015. Retrieved 10 November
2015.
200. Piatetsky, Gregory. "Python eats away at R:
Top Software for Analytics, Data Science,
Machine Learning in 2018: Trends and
Analysis" (https://www.kdnuggets.com/201
8/05/poll-tools-analytics-data-science-mac
hine-learning-results.html/2) . KDnuggets.
KDnuggets. Archived (https://web.archive.o
rg/web/20191115234216/https://www.kdn
uggets.com/2018/05/poll-tools-analytics-d
ata-science-machine-learning-results.html/
2) from the original on 15 November 2019.
Retrieved 30 May 2018.
201. "Who is using scikit-learn? — scikit-learn
0.20.1 documentation" (https://scikit-learn.
org/stable/testimonials/testimonials.html)
. scikit-learn.org. Archived (https://web.arch
ive.org/web/20200506210716/https://sciki
t-learn.org/stable/testimonials/testimonial
s.html) from the original on 6 May 2020.
Retrieved 30 November 2018.
202. Jouppi, Norm. "Google supercharges
machine learning tasks with TPU custom
chip" (https://cloudplatform.googleblog.co
m/2016/05/Google-supercharges-machine-
learning-tasks-with-custom-chip.html) .
Google Cloud Platform Blog. Archived (http
s://web.archive.org/web/2016051820151
6/https://cloudplatform.googleblog.com/2
016/05/Google-supercharges-machine-lear
ning-tasks-with-custom-chip.html) from
the original on 18 May 2016. Retrieved
19 May 2016.
203. "Natural Language Toolkit — NLTK 3.5b1
documentation" (http://www.nltk.org/) .
www.nltk.org. Archived (https://web.archiv
e.org/web/20200613003911/http://www.nl
tk.org/) from the original on 13 June 2020.
Retrieved 10 April 2020.
204. "Installers for GIMP for Windows –
Frequently Asked Questions" (https://web.a
rchive.org/web/20130717070814/http://gi
mp-win.sourceforge.net/faq.html) . 26 July
2013. Archived from the original (http://gim
p-win.sourceforge.net/faq.html) on 17 July
2013. Retrieved 26 July 2013.
205. "jasc psp9components" (https://web.archiv
e.org/web/20080319061519/http://www.ja
sc.com/support/customercare/articles/psp
9components.asp) . Archived from the
original (http://www.jasc.com/support/cust
omercare/articles/psp9components.asp)
on 19 March 2008.
206. "About getting started with writing
geoprocessing scripts" (http://webhelp.esri.
com/arcgisdesktop/9.2/index.cfm?TopicN
ame=About_getting_started_with_writing_g
eoprocessing_scripts) . ArcGIS Desktop
Help 9.2. Environmental Systems Research
Institute. 17 November 2006. Archived (http
s://web.archive.org/web/2020060514461
6/http://webhelp.esri.com/arcgisdesktop/
9.2/index.cfm?TopicName=About_getting_
started_with_writing_geoprocessing_script
s) from the original on 5 June 2020.
Retrieved 11 February 2012.
207. CCP porkbelly (24 August 2010). "Stackless
Python 2.7" (https://community.eveonline.c
om/news/dev-blogs/stackless-python-2.
7/) . EVE Community Dev Blogs. CCP
Games. Archived (https://web.archive.org/
web/20140111155537/http://community.e
veonline.com/news/dev-blogs/stackless-py
thon-2.7/) from the original on 11 January
2014. Retrieved 11 January 2014. "As you
may know, EVE has at its core the
programming language known as Stackless
Python."
208. Caudill, Barry (20 September 2005).
"Modding Sid Meier's Civilization IV" (http
s://web.archive.org/web/2010120216414
4/http://www.2kgames.com/civ4/blog_03.
htm) . Sid Meier's Civilization IV Developer
Blog. Firaxis Games. Archived from the
original (http://www.2kgames.com/civ4/blo
g_03.htm) on 2 December 2010. "we
created three levels of tools ... The next
level offers Python and XML support, letting
modders with more experience manipulate
the game world and everything in it."
209. "Python Language Guide (v1.0)" (https://we
b.archive.org/web/20100715145616/http://
code.google.com/apis/documents/docs/1.
0/developers_guide_python.html) . Google
Documents List Data API v1.0. Archived
from the original (https://code.google.com/
apis/documents/docs/1.0/developers_guid
e_python.html) on 15 July 2010.
210. "Python Setup and Usage" (https://docs.pyt
hon.org/3/using/unix.html) . Python
Software Foundation. Archived (https://we
b.archive.org/web/20200617143505/http
s://docs.python.org/3/using/unix.html)
from the original on 17 June 2020.
Retrieved 10 January 2020.
211. "Immunity: Knowing You're Secure" (https://
web.archive.org/web/20090216134332/htt
p://immunitysec.com/products-immdbg.s
html) . Archived from the original (http://w
ww.immunitysec.com/products-immdbg.s
html) on 16 February 2009.
212. "Core Security" (https://www.coresecurity.
com/) . Core Security. Archived (https://we
b.archive.org/web/20200609165041/http://
www.coresecurity.com/) from the original
on 9 June 2020. Retrieved 10 April 2020.
213. "What is Sugar?" (http://sugarlabs.org/go/
Sugar) . Sugar Labs. Archived (https://web.
archive.org/web/20090109025944/http://s
ugarlabs.org/go/Sugar) from the original
on 9 January 2009. Retrieved 11 February
2012.
214. "4.0 New Features and Fixes" (http://www.li
breoffice.org/download/4-0-new-features-a
nd-fixes/) . LibreOffice.org. The Document
Foundation. 2013. Archived (https://web.ar
chive.org/web/20140209184807/http://ww
w.libreoffice.org/download/4-0-new-feature
s-and-fixes/) from the original on 9
February 2014. Retrieved 25 February 2013.
215. "Gotchas for Python Users" (https://web.arc
hive.org/web/20081211062108/http://boo.
codehaus.org/Gotchas+for+Python+User
s) . boo.codehaus.org. Codehaus
Foundation. Archived from the original (htt
p://boo.codehaus.org/Gotchas+for+Python
+Users) on 11 December 2008. Retrieved
24 November 2008.
216. Esterbrook, Charles. "Acknowledgements"
(http://cobra-language.com/docs/acknowle
dgements/) . cobra-language.com. Cobra
Language. Archived (https://web.archive.or
g/web/20080208141002/http://cobra-lang
uage.com/docs/acknowledgements/)
from the original on 8 February 2008.
Retrieved 7 April 2010.
217. "Proposals: iterators and generators [ES4
Wiki]" (https://web.archive.org/web/200710
20082650/http://wiki.ecmascript.org/doku.
php?id=proposals:iterators_and_generator
s) . wiki.ecmascript.org. Archived from the
original (http://wiki.ecmascript.org/doku.ph
p?id=proposals:iterators_and_generators)
on 20 October 2007. Retrieved
24 November 2008.
218. "Frequently asked questions" (https://docs.
godotengine.org/en/stable/about/faq.htm
l) . Godot Engine documentation. Archived
(https://web.archive.org/web/2021042805
3339/https://docs.godotengine.org/en/sta
ble/about/faq.html) from the original on
28 April 2021. Retrieved 10 May 2021.
219. Kincaid, Jason (10 November 2009).
"Google's Go: A New Programming
Language That's Python Meets C++" (http
s://techcrunch.com/2009/11/10/google-go
-language/) . TechCrunch. Archived (http
s://web.archive.org/web/2010011801435
8/http://www.techcrunch.com/2009/11/1
0/google-go-language/) from the original
on 18 January 2010. Retrieved 29 January
2010.
220. Strachan, James (29 August 2003).
"Groovy – the birth of a new dynamic
language for the Java platform" (https://we
b.archive.org/web/20070405085722/http://
radio.weblogs.com/0112098/2003/08/29.
html) . Archived from the original (http://ra
dio.weblogs.com/0112098/2003/08/29.ht
ml) on 5 April 2007. Retrieved 11 June
2007.
221. Yegulalp, Serdar (16 January 2017). "Nim
language draws from best of Python, Rust,
Go, and Lisp" (https://www.infoworld.com/a
rticle/3157745/application-development/ni
m-language-draws-from-best-of-python-rust
-go-and-lisp.html) . InfoWorld. Archived (htt
ps://web.archive.org/web/2018101321184
7/https://www.infoworld.com/article/3157
745/application-development/nim-languag
e-draws-from-best-of-python-rust-go-and-lis
p.html) from the original on 13 October
2018. Retrieved 7 June 2020. "Nim's syntax
is strongly reminiscent of Python's, as it
uses indented code blocks and some of the
same syntax (such as the way
if/elif/then/else blocks are constructed)."
222. "An Interview with the Creator of Ruby" (htt
p://www.linuxdevcenter.com/pub/a/linux/2
001/11/29/ruby.html) .
Linuxdevcenter.com. Archived (https://web.
archive.org/web/20180428150410/http://w
ww.linuxdevcenter.com/pub/a/linux/2001/
11/29/ruby.html) from the original on 28
April 2018. Retrieved 3 December 2012.
223. Lattner, Chris (3 June 2014). "Chris
Lattner's Homepage" (http://nondot.org/sa
bre) . Chris Lattner. Archived (https://web.a
rchive.org/web/20151222150510/http://no
ndot.org/sabre/) from the original on 22
December 2015. Retrieved 3 June 2014. "I
started work on the Swift Programming
Language in July of 2010. I implemented
much of the basic language structure, with
only a few people knowing of its existence.
A few other (amazing) people started
contributing in earnest late in 2011, and it
became a major focus for the Apple
Developer Tools group in July 2013 [...]
drawing ideas from Objective-C, Rust,
Haskell, Ruby, Python, C#, CLU, and far too
many others to list."
224. Kupries, Andreas; Fellows, Donal K. (14
September 2000). "TIP #3: TIP Format" (htt
p://www.tcl.tk/cgi-bin/tct/tip/3.html) .
tcl.tk. Tcl Developer Xchange. Archived (htt
ps://web.archive.org/web/2017071323395
4/http://tcl.tk/cgi-bin/tct/tip/3.html) from
the original on 13 July 2017. Retrieved
24 November 2008.
225. Gustafsson, Per; Niskanen, Raimo (29
January 2007). "EEP 1: EEP Purpose and
Guidelines" (http://www.erlang.org/eeps/ee
p-0001.html) . erlang.org. Archived (https://
web.archive.org/web/20200615153206/htt
p://erlang.org/eeps/eep-0001.html) from
the original on 15 June 2020. Retrieved
19 April 2011.
226. "Swift Evolution Process" (https://github.co
m/apple/swift-evolution/blob/master/proc
ess.md) . Swift Programming Language
Evolution repository on GitHub. 18 February
2020. Archived (https://web.archive.org/we
b/20200427182556/https://github.com/ap
ple/swift-evolution/blob/master/process.
md) from the original on 27 April 2020.
Retrieved 27 April 2020.

Sources

"Python for Artificial Intelligence" (http


s://web.archive.org/web/201211010453
54/http://wiki.python.org/moin/PythonF
orArtificialIntelligence) .
Wiki.python.org. 19 July 2012. Archived
from the original (https://wiki.python.or
g/moin/PythonForArtificialIntelligence)
on 1 November 2012. Retrieved
3 December 2012.
Paine, Jocelyn, ed. (August 2005). "AI in
Python" (https://web.archive.org/web/2
0120326105810/http://www.ainewslette
r.com/newsletters/aix_0508.htm#pytho
n_ai_ai) . AI Expert Newsletter. Amzi!.
Archived from the original (http://www.a
inewsletter.com/newsletters/aix_0508.h
tm#python_ai_ai) on 26 March 2012.
Retrieved 11 February 2012.
"PyAIML 0.8.5 : Python Package Index"
(https://pypi.python.org/pypi/PyAIML) .
Pypi.python.org. Retrieved 17 July 2013.
Russell, Stuart J. & Norvig, Peter (2009).
Artificial Intelligence: A Modern Approach
(3rd ed.). Upper Saddle River, NJ:
Prentice Hall. ISBN 978-0-13-604259-4.

Further reading
Downey, Allen B. (May 2012). Think
Python: How to Think Like a Computer
Scientist (version 1.6.6 ed.). ISBN 978-0-
521-72596-5.
Hamilton, Naomi (5 August 2008). "The
A-Z of Programming Languages:
Python" (https://web.archive.org/web/2
0081229095320/http://www.computerw
orld.com.au/index.php/id%3B6666577
1) . Computerworld. Archived from the
original (http://www.computerworld.co
m.au/index.php/id;66665771) on 29
December 2008. Retrieved 31 March
2010.
Lutz, Mark (2013). Learning Python
(5th ed.). O'Reilly Media. ISBN 978-0-
596-15806-4.
Summerfield, Mark (2009). Programming
in Python 3 (2nd ed.). Addison-Wesley
Professional. ISBN 978-0-321-68056-3.
Ramalho, Luciano (May 2022). Fluent
Python (https://www.thoughtworks.com/i
nsights/books/fluent-python-2nd-editio
n) (2nd ed.). O'Reilly Media. ISBN 978-1-
4920-5632-4.
External links
Python
at Wikipedia's sister projects

Media from
Commons
Quotations
from
Wikiquote
Textbooks
from
Wikibooks
Resources
from
Wikiversity
Data from
Wikidata

Official website (https://www.python.or


g/)
Retrieved from
"https://en.wikipedia.org/w/index.php?
title=Python_(programming_language)&oldid=1134
491407"

This page was last edited on 18 January 2023, at


23:50 (UTC). •
Content is available under CC BY-SA 3.0 unless
otherwise noted.

You might also like