HOME

TheInfoList




Python is an interpreted
high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for instance, in domains as widely varied as ...
general-purpose programming language In computer software Software is a collection of instructions Instruction or instructions may refer to: Computing * Instruction, one operation of a processor within a computer architecture instruction set * Computer program, a collection of ...
. Its design philosophy emphasizes
code readability Computer programming is the process of designing and building an executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform in ...
with its use of significant indentation. Its
language construct A language construct is a syntactically In linguistics Linguistics is the science, scientific study of language. It encompasses the analysis of every aspect of language, as well as the methods for studying and modeling them. The tradit ...
s as well as its
object-oriented Object-oriented programming (OOP) is a programming paradigm Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * P ...
approach aim to help programmers write clear, logical code for small and large-scale projects. Python is dynamically-typed and garbage-collected. It supports multiple
programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, suc ...
s, including structured (particularly, procedural), object-oriented and
functional programming In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
. It is often described as a "batteries included" language due to its comprehensive
standard library A standard library in computer programming is the library (computing), library made available across implementations of a programming language. These libraries are conventionally described in programming language specifications; however, contents o ...
.
Guido van Rossum Guido van Rossum (; born 31 January 1956) is a Dutch programmer A computer programmer, sometimes called a software developer, a programmer or more recently a coder (especially in more informal contexts), is a person who creates computer s ...

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. Python 2.0 was released in 2000 and introduced new features, such as
list comprehensionA list comprehension is a syntactic In linguistics, syntax () is the set of rules, principles, and processes that govern the structure of Sentence (linguistics), sentences (sentence structure) in a given Natural language, language, usually includ ...
s and a cycle-detecting garbage collection system (in addition to
reference counting In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
). Python 3.0 was released in 2008 and was a major revision of the language that is not completely backward-compatible. Python 2 was discontinued with version 2.7.18 in 2020. Python consistently ranks as one of the most popular programming languages.


History

Python was conceived in the late 1980s by
Guido van Rossum Guido van Rossum (; born 31 January 1956) is a Dutch programmer A computer programmer, sometimes called a software developer, a programmer or more recently a coder (especially in more informal contexts), is a person who creates computer s ...

Guido van Rossum
at
Centrum Wiskunde & Informatica The (abbr. CWI; English: "National Research Institute for Mathematics and Computer Science") is a research center in the field of mathematics and theoretical computer science. It is part of the Netherlands Organisation for Scientific Research ( ...
(CWI) in the
Netherlands ) , national_anthem = ( en, "William of Nassau") , image_map = EU-Netherlands.svg , map_caption = , image_map2 = BES islands location map.svg , map_caption2 = , image_map3 ...

Netherlands
as a successor to the ABC programming language, which was inspired by
SETL SETL (SET Language) is a very high-level programming language based on the mathematical theory of sets. It was originally developed by (Jack) Jacob T. Schwartz at the New York University New York University (NYU) is a private resear ...
, capable of
exception handling In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithm of an algorithm (Euclid's algorithm) for calculating the greatest commo ...
and interfacing with the
Amoeba An amoeba (; less commonly spelt ameba or amœba; plural ''am(o)ebas'' or ''am(o)ebae'' ), often called an amoeboid, is a type of cell or unicellular organism A unicellular organism, also known as a single-celled organism, is an organism ...
operating system. Its implementation began in December 1989. 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. In January 2019, active Python core developers elected a five-member "Steering Council" to lead the project. Python 2.0 was released on 16 October 2000, with many major new features, including a cycle-detecting garbage collector (in addition to
reference counting In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
) for
memory management Memory management is a form of resource management In organizational studies Organizational studies is "the examination of how individuals construct organizational structures, processes, and practices and how these, in turn, shape social relat ...
and support for
Unicode Unicode, formally the Unicode Standard, is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expressed in most of the world's wri ...

Unicode
. Python 3.0 was released on 3 December 2008. It was a major revision of the language that is not completely backward-compatible. Many of its major features were backported to Python 2.6.x and 2.7.x version series. Releases of Python 3 include the 2to3 utility, which automates the translation of Python 2 code to Python 3. Python 2.7's end-of-life date was initially set at 2015 then postponed to 2020 out of concern that a large body of existing code could not easily be forward-ported to Python 3. No more security patches or other improvements will be released for it. With Python 2's end-of-life, only Python 3.6.x and later are supported. Python 3.9.2 and 3.8.8 were expedited as all versions of Python (including 2.7) had security issues, leading to possible remote code execution and web cache poisoning.


Design philosophy and features

Python is a
multi-paradigm programming language Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, suc ...
.
Object-oriented programming Object-oriented programming (OOP) is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mai ...
and
structured programming Structured programming is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with impl ...
are fully supported, and many of its features support functional programming and
aspect-oriented programming In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and sof ...
(including by
metaprogramming Metaprogramming is a programming technique in which computer program In imperative programming In computer science, imperative programming is a programming paradigm that uses Statement (computer science), statements that change a program's sta ...
and
metaobjectIn computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algorith ...
s (magic methods)). Many other paradigms are supported via extensions, including
design by contract Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software. It prescribes that software designers should define formal, precise and verifiable in ...

design by contract
and
logic programming Logic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic prog ...
. Python uses
dynamic typing In programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in computer programming to i ...
and a combination of
reference counting In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
and a cycle-detecting garbage collector for
memory management Memory management is a form of resource management In organizational studies Organizational studies is "the examination of how individuals construct organizational structures, processes, and practices and how these, in turn, shape social relat ...
. It also features dynamic name resolution (
late binding Late binding, dynamic binding, or dynamic linkage—though not an identical process to dynamically linking imported code libraries—is a computer programming mechanism in which the method being called upon an object, or the function being called ...
), which binds method and variable names during program execution. Python's design offers some support for functional programming in the
Lisp Lisp (historically LISP) is a family of programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbo ...
tradition. It has functions;
list comprehensionA list comprehension is a syntactic In linguistics, syntax () is the set of rules, principles, and processes that govern the structure of Sentence (linguistics), sentences (sentence structure) in a given Natural language, language, usually includ ...
s,
dictionaries A dictionary is a listing of lexeme A lexeme () is a unit of lexical meaning that underlies a set of words that are related through inflection In linguistic morphology Morphology, from the Greek and meaning "study of shape", may refe ...
, sets, and generator expressions. The standard library has two modules ( and ) that implement functional tools borrowed from Haskell and
Standard ML Standard ML (SML) is a general-purpose modular functional programming language with compile-time type checking and type inference. It is popular among compiler In computing, a compiler is a computer program that Translator (computing), trans ...
. The language's core philosophy is summarized in the document ''The Zen of Python'' (''PEP 20''), which includes
aphorism An aphorism (from Greek#REDIRECT Greek Greek may refer to: Greece Anything of, from, or related to Greece Greece ( el, Ελλάδα, , ), officially the Hellenic Republic, is a country located in Southeast Europe. Its population is appro ...
s such as: * Beautiful is better than ugly. * Explicit is better than implicit. * Simple is better than complex. * Complex is better than complicated. * Readability counts. Rather than having all of its functionality built into its core, Python was designed to be highly
extensible Extensibility is a software engineering and systems design Systems design is the process of defining the architecture File:Plan d'exécution du second étage de l'hôtel de Brionne (dessin) De Cotte 2503c – Gallica 2011 (adjusted).jpg, up ...

extensible
(with 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 ABC are the first three letters of the Latin script known as the alphabet. ABC or abc may also refer to: Arts, entertainment, and media Broadcasting * American Broadcasting Company, a commercial U.S. TV broadcaster ** Disney–ABC Television ...
, which espoused the opposite approach. Python strives for a simpler, less-cluttered syntax and grammar while giving developers a choice in their coding methodology. In contrast to
Perl Perl is a family of two high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for ...
'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" design philosophy. Alex Martelli, a
Fellow A fellow is a broad concept whose exact meaning depends on context. In learned Learning is the process of acquiring new understanding, knowledge, behaviors, skills, value (personal and cultural), values, attitudes, and preferences. The abil ...
at the
Python Software Foundation The Python Software Foundation (PSF) is an American nonprofit organization A nonprofit organization (NPO), also known as a non-business entity, not-for-profit organization, or nonprofit institution, is a legal entity organized and operated for ...
and Python book author, writes that "To describe something as 'clever' is ''not'' considered a compliment in the Python culture." Python's developers strive to avoid premature optimization, and reject patches to non-critical parts of the
CPython CPython is the reference implementation In the software development process In software engineering, a software development process is the process of dividing software development work into smaller, parallel or sequential steps or subpro ...
reference implementation that would offer marginal increases in speed at the cost of clarity. When speed is important, a Python programmer can move time-critical functions to extension modules written in languages such as C, or use
PyPy PyPy () is an alternative implementation of the Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background ...
, a just-in-time compiler.
Cython Cython is a programming language that aims to be a superset of the Python programming language Python is an interpreted high-level general-purpose programming language. Python's design philosophy emphasizes code readability with its not ...
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 the language to be fun to use. This is reflected in its name—a tribute to the British comedy group
Monty Python Monty Python (also collectively known as the Pythons) were a British who created the television show ', which first aired on the in 1969. Forty-five episodes were made over four series. The Python phenomenon developed from the television ...
—and in occasionally playful approaches to tutorials and reference materials, such as examples that refer to spam and eggs (a reference to a Monty Python sketch) instead of the standard . A common
neologism A neologism (; from Greek#REDIRECT Greek Greek may refer to: Greece Anything of, from, or related to Greece Greece ( el, Ελλάδα, , ), officially the Hellenic Republic, is a country located in Southeast Europe. Its population is appro ...
in the Python community is ''pythonic'', which can have a wide range of meanings related to program style. To say that code is pythonic is to say that it uses Python idioms well, that it is natural or shows fluency in the language, that it conforms with Python's minimalist philosophy and emphasis on readability. In contrast, code that is difficult to understand or reads like a rough transcription from another programming language is called ''unpythonic''. Users and admirers of Python, especially those considered knowledgeable or experienced, are often referred to as ''Pythonistas''.


Syntax and semantics

Python is meant to be an easily readable language. Its formatting is visually uncluttered, and it often uses English keywords where other languages use punctuation. Unlike many other languages, it does not use
curly brackets A bracket is either of two tall fore- or back-facing punctuation Punctuation (or sometimes interpunction) is the use of spacing, conventional signs (called punctuation marks), and certain typographical devices as aids to the understanding ...
to delimit blocks, and semicolons after statements are allowed but are rarely, if ever, used. It has fewer syntactic exceptions and special cases than C or
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, French ...
.


Indentation

Python uses
whitespace White space or whitespace may refer to: Technology * Whitespace character, Whitespace characters, characters in computing that represent horizontal or vertical space * White spaces (radio), allocated but locally unused radio frequencies * TV White ...
indentation, rather than
curly brackets A bracket is either of two tall fore- or back-facing punctuation Punctuation (or sometimes interpunction) is the use of spacing, conventional signs (called punctuation marks), and certain typographical devices as aids to the understanding ...
or keywords, to delimit blocks. An increase in indentation comes after certain statements; a decrease in indentation signifies the end of the current block. Thus, the program's visual structure accurately represents the program's semantic structure. This feature is sometimes termed the
off-side rule A computer programming language is said to adhere to the off-side rule if block (programming), blocks in that language are expressed by their indent style, indentation. The term was coined by Peter J. Landin, possibly as a pun on the offside (assoc ...
, which some other languages share, but in most languages indentation does not have any semantic meaning. The recommended indent size is four spaces.


Statements and control flow

Python's
statements Statement or statements may refer to: Common uses *Statement (computer science)In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to ...
include (among others): * 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 statement, which iterates over an iterable object, capturing each element to a local variable for use by the attached block. * The
while ''While'' is a word in the English language that functions both as a noun and as a Grammatical conjunction, subordinating conjunction. Its meaning varies largely based on its intended function, position in the phrase and even the writer or speake ...

while
statement, which executes a block of code as long as its condition is true. * The
try Try or TRY may refer to: Music Albums * ''Try!'', an album by the John Mayer Trio * Try (Bebo Norman album), ''Try'' (Bebo Norman album) (2014) Songs * Try (Blue Rodeo song), "Try" (Blue Rodeo song) (1987) * Try (Colbie Caillat song), "Try" (Colbi ...

try
statement, which allows exceptions raised in its attached code block to be caught and handled by except clauses; it also ensures that clean-up code in a finally block will always be 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 Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differently f ...
, for use in object-oriented programming. * The def statement, which defines a
function Function or functionality may refer to: Computing * Function key A function key is a key on a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern comp ...
or
method Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scien ...
. * The
with With or WITH may refer to: * With, a preposition in English * Carl Johannes With (1877–1923), Danish doctor and arachnologist * With (character), a character in ''D. N. Angel'' * With (novel), ''With'' (novel), a novel by Donald Harrington * With ...
statement, which encloses a code block within a context manager (for example, acquiring a
lock Lock(s) may refer to: Common meanings *, a mechanical device used to secure items of importance *, a device for boats to transit between different levels of water, as in a canal Arts and entertainment *, a 2016 Punjabi film *, a sentient machin ...
before the block of code is run and releasing the lock afterwards, or opening a
file File or filing may refer to: Mechanical tools and processes * File (tool) A file is a tool used to remove fine amounts of material from a workpiece. It is common in woodworking, metalworking, and other similar trade and hobby tasks. Most are ...
and then closing it), allowing resource-acquisition-is-initialization (RAII)-like behavior and replaces a common try/finally idiom. * The break statement, exits from a loop. * The continue statement, skips this iteration and continues with the next item. * The del statement, removes a variable, which means the reference from the name to the value is deleted and trying to use that variable will cause an error. A deleted variable can be reassigned. * The pass statement, which serves as a NOP. It is syntactically needed to create an empty code block. * The
assert Assertion or assert may refer to: Computing * Assertion (software development) Assertion or assert may refer to: Computing * Assertion (software development) Assertion or assert may refer to: Computing * Assertion (software development), a com ...
statement, used during debugging to check for conditions that should apply. * The yield statement, which returns a value from a function and yield is also an operator. This form is used to implement
coroutine Coroutines are computer program components that generalize subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed. Coroutines are well-suited for implementing familiar program components such as cooperative mu ...

coroutine
s. * The return statement, used to return a value from a function. * The
import An import is the receiving country in an export An export in international trade International trade is the exchange of capital Capital most commonly refers to: * Capital letter Letter case (or just case) is the distincti ...
statement, which is used to import modules whose functions or variables can be used in the current program. The assignment statement (=) operates by binding a name as a
reference Reference is a relationship between objects in which one object designates, or acts as a means by which to connect to or link to, another object. The first object in this relation is said to ''refer to'' the second object. It is called a ''name ...
to a separate, dynamically-allocated
object Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Entity, something that is tangible and within the grasp of the senses ** Object (abstract), an object which does not exist at any particular time or pl ...
. Variables may subsequently be rebound at any time to any object. In Python, a variable name is a generic reference holder and does not have a fixed
data type In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
associated with it. However, at a given time, a variable will refer to ''some'' object, which will have a type. This is referred to as
dynamic typing In programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in computer programming to i ...
and is contrasted with statically-typed programming languages, where each variable may only contain values of a certain type. Python does not support
tail call In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algorit ...
optimization or first-class continuations, and, according to Guido van Rossum, it never will. However, better support for
coroutine Coroutines are computer program components that generalize subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed. Coroutines are well-suited for implementing familiar program components such as cooperative mu ...

coroutine
-like functionality is provided, by extending Python's generators. Before 2.5, generators were lazy
iterator In computer programming, an iterator is an object (computing), object that enables a programmer to traverse a Container (data structure), container, particularly List (abstract data type), lists. Various types of iterators are often provided via a ...
s; information was passed unidirectionally out of the generator. From Python 2.5, it is possible to pass information back into a generator function, and from Python 3.3, the information can be passed through multiple stack levels.


Expressions

Some Python
expressions Expression may refer to: Linguistics * Expression (linguistics), a word, phrase, or sentence * Fixed expression, a form of words with a specific meaning * Idiom, a type of fixed expression * Metaphor#Common types, Metaphorical expression, a parti ...
are similar to those found in languages such as C and
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
, while some are not: * Addition, subtraction, and multiplication are the same, but the behavior of division differs. There are two types of divisions in Python. They are floor division (or integer division) // and floating-point/division. Python also uses the ** operator for exponentiation. * From Python 3.5, the new @ infix operator was introduced. It is intended to be used by libraries such as
NumPy NumPy (pronounced () or sometimes ()) is a library A library is a collection of materials, books or media that are easily accessible for use and not just for display purposes. It is responsible for housing updated information in order to ...
for
matrix multiplication In mathematics Mathematics (from Greek: ) includes the study of such topics as numbers (arithmetic and number theory), formulas and related structures (algebra), shapes and spaces in which they are contained (geometry), and quantities and t ...

matrix multiplication
. * From Python 3.8, the syntax :=, called the 'walrus operator' was introduced. It assigns values to variables as part of a larger expression. * In Python,

compares by value, versus Java, which compares numerics by value and objects by reference. (Value comparisons in Java on objects can be performed with the equals() method.) Python's is operator may be used to compare object identities (comparison by reference). In Python, comparisons may be chained, for example . * Python uses the words and, or, not for its boolean operators rather than the symbolic &&, , , , ! used in Java and C. * Python has a type of expression termed a ''
list comprehensionA list comprehension is a syntactic In linguistics, syntax () is the set of rules, principles, and processes that govern the structure of Sentence (linguistics), sentences (sentence structure) in a given Natural language, language, usually includ ...

list comprehension
'' as well as a more general expression termed a '' generator expression''. *
Anonymous function Anonymous may refer to: * Anonymity Anonymity describes situations where the acting person's identity is unknown. Some writers have argued that namelessness, though technically correct, does not capture what is more centrally at stake in context ...
s are implemented using
lambda expressions Lambda calculus (also written as λ-calculus) is a formal system A formal system is used for inferring theorems from axioms according to a set of rules. These rules, which are used for carrying out the inference of theorems from axioms, are the logi ...
; however, these are limited in that the body can only be one expression. * Conditional expressions in Python are written as (different in order of operands from the c ? x : y operator common to many other languages). * Python makes a distinction between
lists A ''list'' is any set of items. List or lists may also refer to: People * List (surname)List or Liste is a European surname. Notable people with the surname include: List * Friedrich List (1789–1846), German economist * Garrett List (1943 ...
and
tuple In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). ...
s. Lists are written as , are mutable, and cannot be used as the keys of dictionaries (dictionary keys must be
immutable In object-oriented computer programming, object-oriented and Functional programming, functional programming, an immutable object (unchangeable object) is an object (computer science), object whose state cannot be modified after it is created.Goetz ...
in Python). Tuples are written as , are immutable and thus can be used as the keys of dictionaries, provided all elements of the tuple are immutable. The + operator can be used to concatenate two tuples, which does not directly modify their contents, but rather produces a new tuple containing the elements of both provided tuples. Thus, given the variable t initially equal to , executing first evaluates , which yields , 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. * Python features ''sequence unpacking'' wherein multiple expressions, each evaluating to anything that can be assigned to (a variable, a 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 and will iterate through it, assigning each of the produced values to the corresponding expression on the left. * Python has a "string format" operator %. This functions analogously to
printf printf format string refers to a control parameter used by a class of functions Function or functionality may refer to: Computing * Function key A function key is a key on a computer A computer is a machine that can be programmed t ...
format strings in C, e.g. evaluates to "spam=blah eggs=2". In Python 3 and 2.6+, this was supplemented by the format() method of the str class, e.g. . Python 3.6 added "f-strings": . * Strings in Python can be concatenated, by "adding" them (same operator as for adding integers and floats). E.g. returns "spameggs". Even if your strings contain numbers, they are still added as strings rather than integers. E.g. returns "22". * Python has various kinds of
string literal A string literal or anonymous string is a type of literal Literal may refer to: * Interpretation of legal concepts: ** Strict constructionism ** The plain meaning rule (a.k.a. "literal rule") * Literal (mathematical logic), certain logical r ...
s: ** Strings delimited by single or double quote marks. Unlike in
Unix shell A Unix shell is a command-line interpreter or shell Shell may refer to: Architecture and design * Shell (structure)A shell is a type of structural element which is characterized by its geometry, being a three-dimensional solid whose thickness ...
s,
Perl Perl is a family of two high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for ...
and Perl-influenced languages, single quote marks and double quote marks function identically. Both kinds of string use the backslash (\) as an
escape character In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and so ...
.
String interpolation In computer programming, string interpolation (or variable interpolation, variable substitution, or variable expansion) is the process of evaluating a string literal containing one or more Form (document)#Placeholders, placeholders, yielding a resul ...
became available in Python 3.6 as "formatted string literals". ** Triple-quoted strings, which begin and end with a series of three single or double quote marks. They may span multiple lines and function like
here document In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithm of an algorithm (Euclid's algorithm) for calculating the greatest common ...
s in shells, Perl and
Ruby A ruby is a pink-ish red to blood-red colored gemstone A gemstone (also called a fine gem, jewel, precious stone, or semi-precious stone) is a piece of mineral In geology and mineralogy, a mineral or mineral species is, broadly spea ...
. **
Raw string A string literal or anonymous string is a type of literal (computer programming), literal for the representation of a String (computer science), string value in the source code of a computer program. In modern Computer programming, programming lang ...
varieties, denoted by prefixing the string literal with an r. Escape sequences are not interpreted; hence raw strings are useful where literal backslashes are common, such as
regular expression A regular expression (shortened as regex or regexp; also referred to as rational expression) is a sequence of Character (computing), characters that specifies a ''search pattern matching, pattern''. Usually such patterns are used by string-se ...
s and
Windows Microsoft Windows, commonly referred to as Windows, is a group of several proprietary {{Short pages monitor * Python (programming language), Articles with example Python (programming language) code Class-based programming languages Computational notebook Computer science in the Netherlands Concurrent programming languages Cross-platform free software Cross-platform software Dutch inventions Dynamically typed programming languages Educational programming languages High-level programming languages Information technology in the Netherlands Multi-paradigm programming languages Object-oriented programming languages Programming languages Programming languages created in 1991 Scripting languages Text-oriented programming languages {{Good article