All Topics  
Python (programming language)

 

   Email Print
   Bookmark   Link






 

Python (programming language)



 
 
Python is a general-purpose high-level programming language
High-level programming language

In computing, a high-level programming language is a programming language with strong Abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or more Porting across platforms....
. Its design philosophy emphasizes code readability. Python's core syntax and semantics are minimalistic, while the standard library
Standard library

A standard library for a programming language is the library that is conventionally made available in every implementation of that language. In some cases, the library is described directly in the programming language specification; in other cases, the contents of the standard library are determined by more informal social practices in the...
 is large and comprehensive. Its use of whitespace
Whitespace (computer science)

In computer science, whitespace is any single character or series of characters that represents horizontal or vertical space in typography. When rendered, a whitespace character does not correspond to a visual mark, but typically does occupy an area on a page....
 as block delimiter
Delimiter

A delimiter is a sequence of one or more character s used to specify the boundary between separate, independent regions in plain text or other data stream....
s is unusual among popular programming languages.

Python supports multiple programming paradigm
Programming paradigm

A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
s (primarily object oriented
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
, imperative
Imperative programming

In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
, and functional
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
) and features a fully dynamic type system and automatic memory management
Memory management

Memory management is the act of managing computer memory. In its simpler forms, this involves providing ways to allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed....
, similar to Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
, Scheme, and Tcl
Tcl

Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
.






Discussion
Ask a question about 'Python (programming language)'
Start a new discussion about 'Python (programming language)'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Python is a general-purpose high-level programming language
High-level programming language

In computing, a high-level programming language is a programming language with strong Abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or more Porting across platforms....
. Its design philosophy emphasizes code readability. Python's core syntax and semantics are minimalistic, while the standard library
Standard library

A standard library for a programming language is the library that is conventionally made available in every implementation of that language. In some cases, the library is described directly in the programming language specification; in other cases, the contents of the standard library are determined by more informal social practices in the...
 is large and comprehensive. Its use of whitespace
Whitespace (computer science)

In computer science, whitespace is any single character or series of characters that represents horizontal or vertical space in typography. When rendered, a whitespace character does not correspond to a visual mark, but typically does occupy an area on a page....
 as block delimiter
Delimiter

A delimiter is a sequence of one or more character s used to specify the boundary between separate, independent regions in plain text or other data stream....
s is unusual among popular programming languages.

Python supports multiple programming paradigm
Programming paradigm

A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
s (primarily object oriented
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
, imperative
Imperative programming

In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
, and functional
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
) and features a fully dynamic type system and automatic memory management
Memory management

Memory management is the act of managing computer memory. In its simpler forms, this involves providing ways to allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed....
, similar to Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
, Scheme, and Tcl
Tcl

Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
. Like other dynamic languages, Python is often used as a scripting language
Scripting language

A scripting language, script language or extension language, is a programming language that allows some control of a single or many Application software....
.

The language has an open, community-based development model managed by the non-profit Python Software Foundation
Python Software Foundation

The Python Software Foundation , is a non-profit organization devoted to the Python programming language. It was launched March 6, 2001. The mission of the foundation is to foster development of the Python community....
, which maintains the de facto
De facto

De facto is a Latin expression that means "concerning the fact" or in practice but not necessarily ordained by law. It is commonly used in contrast to de jure when referring to matters of law, governance, or technique that are found in the common experience as created or developed without or contrary to a regulation....
 standard definition of the language in CPython
CPython

CPython is the default, most-widely used implementation of the Python . It is written in C . In addition to CPython, there are two other production-quality Python implementations: Jython, written in Java , and IronPython, which is written for the Common Language Runtime, as well as several experimental implementations....
, the reference implementation
Reference implementation (computing)

In computing, a reference implementation is a software example of a specification. These are intended to help others implement their own version of the specification or find problems during the creation of a specification....
.

History

Python was conceived in the late 1980s by Guido van Rossum
Guido van Rossum

Guido van Rossum is a Netherlands computer programmer who is best known as the author of the Python . In the Python community, Van Rossum is known as a ?Benevolent Dictator for Life? , meaning that he continues to oversee the Python development process, making decisions where necessary....
 at CWI
National Research Institute for Mathematics and Computer Science

The National Research Institute for Mathematics and Computer Science is one of the leading European research centers in the field of mathematics and theoretical computer science....
 in the Netherlands as a successor to the ABC programming language
ABC programming language

ABC is an imperative general-purpose programming language and Integrated development environment developed at National Research Institute for Mathematics and Computer Science, Netherlands by Leo Geurts, Lambert Meertens, and Steven Pemberton....
 (itself inspired by SETL
SETL

SETL is a very-high level programming language based on the mathematical theory of sets. It was originally developed by Jack Schwartz at the New York University Courant Institute of Mathematical Sciences in the late 1960's....
) capable of exception handling
Exception handling

Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions - special conditions that change the normal flow of execution....
 and interfacing with the Amoeba operating system
Amoeba distributed operating system

Amoeba is an open source microkernel-based distributed computing operating system developed by Andrew S. Tanenbaum and others at the Vrije Universiteit....
. Van Rossum is Python's principal author, and his continuing central role in deciding the direction of Python is reflected in the title given to him by the Python community, Benevolent Dictator for Life (BDFL)
Benevolent Dictator For Life

Benevolent Dictator For Life or BDFL is a title given to a small number of open source software development leaders. The term originally referred only to Guido van Rossum, creator of the Python ....
.

Python 2.0 was released on 16 October 2000, with many major new features including a full garbage collector
Garbage collector

Garbage collector may refer to:* Waste collector, a person employed to collect waste.* A waste collection vehicle.* A waste picker, or a dumpster diver....
 and support for unicode
Unicode

Unicode is a computing industry standard allowing computers to consistently represent and manipulate Character expressed in most of the world's writing systems....
. However, the most important change was to the development process itself, with a shift to a more transparent and community-backed process. Python 3.0, a major, backwards-incompatible release, was released on 3 December 2008 after a long period of testing. Many of its major features have been backported to the backwards-compatible Python 2.6.

Programming philosophy

Python is a multi-paradigm programming language
Multi-paradigm programming language

A multi-paradigm programming language is a programming language that supports more than one programming paradigm. As Lead designer Tim Budd holds it: The idea of a multiparadigm language is to provide a framework in which programmers can work in a variety of styles, freely intermixing constructs from different paradigms. The design goal...
. This means that, rather than forcing programmers to adopt a particular style of programming, it permits several styles: object oriented and structured programming
Structured programming

Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. It is most famous for removing or reducing reliance on the GOTO Statement ....
 are fully supported, and there are a number of language features which support functional programming
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
 and aspect-oriented programming
Aspect-oriented programming

Aspect-oriented programming is a programming paradigm that increases Modularity by allowing the separation of concerns cross-cutting concerns, forming a basis for Aspect-oriented software development....
. Many other paradigms are supported using extensions, such as and which allow Design by Contract
Design by contract

Design by Contract or Programming by Contract is an approach to designing computer software. It prescribes that software designers should define Formal methods, precise and verifiable interface specifications for Component-based software engineering#Software component based upon the theory of abstract data types and the conceptual metaph...
. Python uses dynamic typing and a combination of reference counting
Reference counting

In computer science, reference counting is a technique of storing the number of references, pointers, or handles to a resource such as an object or block of memory....
 and a cycle-detecting garbage collector
Garbage collection (computer science)

In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage , or memory used by Object that will never be accessed or mutated again by the Application software....
 for memory management
Memory management

Memory management is the act of managing computer memory. In its simpler forms, this involves providing ways to allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed....
. An important feature of Python is dynamic name resolution
Name resolution

In computer science, name resolution can have one of several meanings, discussed below....
 (late binding), which binds method and variable names during program execution.

Another aspect of the language's design is ease of extensibility, rather than having everything built into the language core. New built-in modules are easily written in C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
 or C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
. Python can also be used as an extension language for existing modules and applications that need a programmable interface. This design, of a small core language with a large standard library and an easily-extensible interpreter, was intended by Van Rossum from the very start, because of his frustrations with ABC, which espoused the opposite mindset.

The design of Python offers limited support for functional programming
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
 in the Lisp
Lisp programming language

Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older....
 tradition. However, there are significant parallels between the philosophy of Python and those of minimalist Lisp-family languages such as Scheme. The library has two modules (itertools and functools) that implement proven functional tools borrowed from Haskell
Haskell (programming language)

Haskell is a standardized, purely functional programming language with non-strict programming language, named after logician Haskell Curry. The goals of the language are described as:...
 and Standard ML
Standard ML

Standard ML is a general-purpose, Module , functional programming language with compile-time type checking and type inference. It is popular among compiler writers and programming language researchers, as well as in the development of automated theorem proving....
.

While offering choice in coding methodology, the Python philosophy rejects exuberant syntax, such as in Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, in favor of a sparser, less-cluttered grammar. As with Perl, Python's developers expressly promote a particular "culture" or ideology based on what they want the language to be, favoring language forms they see as "beautiful", "explicit" and "simple". As Alex Martelli
Alex Martelli

Alex Martelli is an Italian computer scientist and member of the Python Software Foundation. Since early 2005, he worked as "?ber Tech Lead" for Google, Inc....
 put it in his Python Cookbook (2nd ed., p.230): "To describe something as clever is NOT considered a compliment in the Python culture." Python's philosophy rejects the Perl "there is more than one way to do it
There is more than one way to do it

There's more than one way to do it is a Perl motto. The language was designed with this idea in mind, so that it "doesn't try to tell the programmer how to program"....
" approach to language design in favor of "there should be one—and preferably only one—obvious way to do it".

Python eschews premature optimization
Optimization (computer science)

In computing, optimization is the process of modifying a system to make some aspect of it work more efficiently or use fewer resources. For instance, a computer program may be optimized so that it executes more rapidly, or is capable of operating with less Computer data storage or other resources, or draw less power....
, and moreover, rejects patches to non-critical parts of CPython which would offer a marginal increase in speed at the cost of clarity. It is sometimes described as "slow". However, most problems are not speed critical, and as computer hardware continues to become exponentially faster (Moore's Law
Moore's Law

Moore's law describes a long-term trend in the history of computing hardware. Since the invention of the integrated circuit in 1958, the number of transistors that can be placed inexpensively on an integrated circuit has increased exponential growth, doubling approximately every two years....
), languages do have more hardware resources available. When speed is a problem, Python programmers tend to try to optimize bottlenecks by algorithm improvements or data structure changes, using a JIT compiler such as Psyco, rewriting the time-critical functions in "closer to the metal" languages such as C, or by translating Python code to C code using tools like .

The core philosophy of the language is summarized by .

Neologisms

A common neologism
Neologism

A neologism is a newly coined word that may be in the process of entering common use, but has not yet been accepted into mainstream language . Neologisms are often directly attributable to a specific person, publication, period, or event....
 in the Python community is pythonic, which can have a wide range of meanings related to program style. To say that a piece of code is pythonic is to say that it uses Python idioms well, that it is natural or shows fluency in the language. Likewise, to say of an interface or language feature that it is pythonic is to say that it works well with Python idioms, that its use meshes well with the rest of the language.

In contrast, a mark of unpythonic code is that it attempts to "write C++ (or Lisp, or Perl, or Java) code in Python"—that is, provides a rough transcription rather than an idiomatic translation of forms from another language. The concept of pythonicity is tightly bound to Python's minimalist philosophy of readability and avoiding the "there's more than one way to do it" approach. Unreadable code or incomprehensible idioms are unpythonic.

Users and admirers of Python—most especially those considered knowledgeable or experienced—are often referred to as Pythonists, Pythonistas, and Pythoneers.

The prefix Py can be 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
Pygame

Pygame is a cross-platform set of Python modules designed for writing video games.It includes computer graphics and sound library designed to be used with the Python programming language....
, a binding
Language binding

In computing, a Binding from a language to a library or operating system service is an Application programming interface providing that service in the language....
 of SDL
Simple DirectMedia Layer

Simple DirectMedia Layer is a cross-platform, free and open source software multimedia Library written in C that presents a simple interface to various platforms' computer graphics, sound, and input devices, allowing a developer to write a Personal computer game or other multimedia application that can run on many operating systems includi...
 to Python (commonly used to create games); PyS60, an implementation for the Symbian Series 60 Operating System; PyQt
PyQt

PyQt is the Python Binding of the cross-platform GUI toolkit Qt .PyQt is developed by the United Kingdom firm . It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License and commercial license, but not LGPL....
 and PyGTK
PyGTK

PyGTK is a set of Python Adapter patterns for the GTK+ GUI library . PyGTK is free software and licensed under the LGPL. Its original author is the prominent GNOME developer James Henstridge....
, which bind Qt
Qt (toolkit)

Qt is a cross-platform application development framework, widely used for the development of graphical user interface programs , and also used for developing non-GUI programs such as console tools and servers....
 and GTK, respectively, to Python; and PyPy
PyPy

PyPy is a self-hosting Interpreter for the Python ....
, a Python implementation written in Python. The prefix is also used outside of naming software packages: the major Python conference
Academic conference

An academic conference is a :wikt:conference for researchers to present and discuss their work. Together with academic or scientific journals, conferences provide an important channel for exchange of information between researchers....
 is named PyCon.

An important goal of the Python developers is making Python fun to use. This is reflected in the origin of the name (based on the television series Monty Python's Flying Circus
Monty Python's Flying Circus

Monty Python?s Flying Circus is a BBC sketch comedy programme from the Monty Python comedy team, and the group's initial claim to fame. The show was noted for its surreality, Wiktionary:risqu? or innuendo-laden humour, sight gags, and sketches without punchlines....
), in the common practice of using Monty Python references in example code, and in an occasionally playful approach to tutorials and reference materials. For example, the metasyntactic variable
Metasyntactic variable

The phrase metasyntactic variable is a neologism that is used in some programmer communities to describe a placeholder name or an Aliasing term commonly used to denote the subject matter under discussion or an arbitrary member of a class of things under discussion....
s often used in Python literature are spam and eggs
Spam (Monty Python)

"Spam" is a popular Monty Python sketch comedy, first televised in 1970. In the sketch, two customers are trying to order a breakfast from a menu that includes the spam in almost every dish....
, instead of the traditional foo and bar
Foobar

The term foobar, along with foo, bar, and baz, is a common placeholder name used in computer programming or computer-related documentation....
.

Usage


Python is often used as a scripting language
Scripting language

A scripting language, script language or extension language, is a programming language that allows some control of a single or many Application software....
 for web application
Web application

In software engineering, a web application or webapp is an Application software that is accessed via web browser over a network such as the Internet or an intranet....
s, e.g. via mod_python
Mod python

mod_python is an Apache HTTP Server module that integrates the Python into the Apache server. It is intended to replace Common Gateway Interface as a method of executing Python scripts on a web server....
 for the Apache web server. With Web Server Gateway Interface a standard API has been developed to facilitate these applications. Web application framework
Web application framework

A web application framework is a software framework that is designed to support the web development of Dynamic web page, Web applications and Web services....
s or application servers like web2py
Web2py

Description Web2py is an open source framework for agile development of database driven web applications. Web2py is written in the Python language and is programmable in Python....
, Zope
Zope

Zope is a free software and open source software, object-oriented web application server written in the Python programming language. Zope stands for "Z Object Publishing Environment." It can be almost fully managed with a web-based user interface....
, and Django support developers in the design and maintenance of complex applications.

Python has seen extensive use in the information security
Information security

Information security means protecting information and information systems from unauthorized access, use, disclosure, disruption, modification or destruction....
 industry, including in exploit development. Python has been successfully embedded in a number of software products as a scripting language, including in 3D animation packages such as Maya, Softimage XSI
Softimage XSI

Autodesk Softimage, or simply Softimage , is a high-end 3D computer graphics software owned by Autodesk for producing 3D computer graphics, 3D modeling, and computer animation....
, and Blender
Blender (software)

Blender is a free software 3D computer graphics graphics application. It can be used for 3D modeling, UV mapping unwrapping, texturing, skeletal animation, water simulations, skeletal animation, computer animation, rendering , particle system and other computer simulation, non-linear editing, compositing, and creating interactive 3D applicati...
, and 2D imaging programs like GIMP
GIMP

The GIMP is a free software, raster graphics editor used to process digital graphics and photographs. Typical uses include creating graphics and logos, resizing and cropping photos, altering colors, combining multiple images, removing unwanted image components, and converting between different image formats....
, Inkscape
Inkscape

Inkscape is a free software and open source vector graphics editor application. Its stated goal is to become a powerful graphic tool while being fully compliant with the Extensible Markup Language, Scalable Vector Graphics and Cascading Style Sheets standards....
, Scribus
Scribus

Scribus is a desktop publishing application; released under the GNU General Public License, it is free software. Native versions are available for Linux, Unix, Mac OS X, OS/2, and Microsoft Windows....
, and Paint Shop Pro. ESRI
ESRI

ESRI is a software development and services company providing Geographic Information System software and geodatabase management applications. The headquarters of ESRI is in Redlands, California....
 is now promoting Python as the best choice for writing scripts in ArcGIS
ArcGIS

ArcGIS is the name of a group of geographic information system software product lines produced by ESRI. At the desktop GIS level, ArcGIS can include: ArcReader, which allows one to view and query maps created with the other Arc products; ArcView, which allows one to view spatial data, create maps, and perform basic spatial analysis; ArcEdi...
. It has even been used in several videogames.

For many operating systems, Python is a standard component; it ships with most Linux distribution
Linux distribution

A Linux distribution is a member of the family of Unix-like software distributions built on top of the Linux kernel. Such distributions consist of a large collection of software applications such as word processors, spreadsheets, media players and database applications....
s, with NetBSD
NetBSD

NetBSD is a freely redistributable, open source version of the Unix-derivative Berkeley Software Distribution computer operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed....
, and OpenBSD
OpenBSD

OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley....
, and with Mac OS X
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
. Red Hat Linux
Red Hat Linux

Red Hat Linux, assembled by the company Red Hat, was a popular Linux based operating system until its discontinuation in 2004.Red Hat Linux 1.0 was released on November 3, 1994....
 and Fedora
Fedora (operating system)

Fedora is an RPM Package Manager-based, general purpose operating system built on top of the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat....
 both use the pythonic Anaconda installer. Gentoo Linux
Gentoo Linux

Gentoo is a computer operating system built on top of the Linux Kernel and based on the Portage package management system. It is distributed as Free software....
 uses Python in its package management system, Portage
Portage (software)

Portage is a package management system used by Gentoo Linux. Gentoo is sometimes referred to as a meta-distribution due to the flexibility of Portage which allows it to manage other operating systems as well....
, and the standard tool to access it, emerge
Portage (software)

Portage is a package management system used by Gentoo Linux. Gentoo is sometimes referred to as a meta-distribution due to the flexibility of Portage which allows it to manage other operating systems as well....
. Pardus
Pardus (operating system)

Pardus is a Linux distribution developed in Turkey, as a product of the Pardus Project. It was named after the Latin language name for the Anatolian leopard....
 uses it for administration and during system boot.

Among the users of Python are YouTube
YouTube

YouTube is a Video hosting service website where users can upload, view and share video clips. Three former PayPal employees created YouTube in February 2005....
 and the original BitTorrent client. Large organizations that make use of Python include Google
Google

Google Inc. is an United States public company, earning revenue from AdWords related to its Google search, Gmail, Google Maps, Google Apps, Orkut, and YouTube services as well as selling advertising-free versions of the Google Search Appliance....
, Yahoo!
Yahoo!

Yahoo! Inc. is an United States public company corporation with headquarters in Sunnyvale, California, , and provides Internet services worldwide....
, CERN
CERN

The European Organization for Nuclear Research , known as CERN , , is the world's largest particle physics laboratory, situated in the northwest suburbs of Geneva on the France-Switzerland border, established in 1954 in science....
,, NASA
NASA

The National Aeronautics and Space Administration is an agency of the Federal government of the United States, responsible for the nation's public list of space agencies....
,and ITA
ITA Software

ITA Software is a travel industry software company in Cambridge, Massachusetts. The company was founded by computer scientists from the MIT Computer Science and Artificial Intelligence Laboratory in 1996....
. Most of the Sugar software
Sugar (GUI)

Sugar is the graphical user interface originally developed for the One Laptop per Child computer/education project and as of May 2008 being developed under the umbrella of Sugar Labs....
 for the One Laptop Per Child XO, now developed at Sugar Labs
Sugar Labs

Sugar Labs is a software-development and learning community.Sugar Labs is a non-profit foundation whose mission is to produce, distribute, and support the use of the Sugar_ learning platform....
, is written in Python.

Syntax and semantics

Python Add5 Syntax
Python was intended to be a highly readable language. It is designed to have an uncluttered visual layout, frequently using English keywords where other languages use punctuation. Python requires less boilerplate
Boilerplate (text)

Boilerplate is any text that is or can be reused in new contexts or applications without being changed much from the original. Many computer programmers often use the term #Boilerplate code....
 than traditional manifestly-typed
Manifest typing

In computer science, manifest typing is when the software programmer explicitly identifies the type of each variable being declared. For example: if variable X is going to store integers then its type must be declared as integer....
 structured languages such as C or Pascal, and has a smaller number of syntactic exceptions and special cases than either of these.

Indentation

Python uses whitespace
Whitespace (computer science)

In computer science, whitespace is any single character or series of characters that represents horizontal or vertical space in typography. When rendered, a whitespace character does not correspond to a visual mark, but typically does occupy an area on a page....
 indentation, rather than curly braces
Curly bracket programming language

Curly brace or bracket programming languages are those which use balanced brackets to make block s in their syntax or formal grammar, mainly due to being C -influenced....
 or keywords, to delimit statement block
Statement block

In computer programming, a statement block is a section of computer code which is grouped together, much like a paragraph; such blocks consist of one, or more, statement ....
s (a feature also known as the off-side rule
Off-side rule

A computer programming language is said to adhere to the off-side rule if in it the scope of declarations is expressed by their indentation, i.e., blocks are formed via indentation....
). An increase in indentation comes after certain statements; a decrease in indentation signifies the end of the current block.

Statements and control flow

Python's statements include:
  • The if statement, which conditionally executes a block of code, along with else and elif (a contraction of else-if).
  • The for statement
    Foreach

    For each is a computer language idiom for traversing items in a Collection class. Foreach is usually used in place of a standard for loop statement ....
    , which iterates over an iterable object, capturing each element to a local variable for use by the attached block.
  • The try
    Exception handling syntax

    Exception handling syntax varies between programming languages to accommodate their overall syntax#Syntax in computer science. Some languages don't call the concept exception handling or they may not have direct facilities for it, but they can still provide means for implementing it....
     statement, which allows errors thrown 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 be always be run regardless of how the block exits.
  • The class statement, which executes a block of code and attaches its local namespace to a class
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    , for use in object oriented programming.
  • The def statement, which defines a function.
  • The with statement which encloses a code block within a context manager (for example, acquiring a lock
    Lock (computer science)

    In computer science, a lock is a Synchronization mechanism for enforcing limits on access to a resource in an environment where there are many thread ....
     before the block of code is run, and releasing the lock afterwards).


Each statement has its own semantics: for example, the def statement does not execute its block immediately, unlike most other statements.

CPython does not support continuation
Continuation

In computing and programming, a continuation is an abstract representation of Control flow, or the "rest of computation" or "rest of code to be executed"....
s, and according to Guido van Rossum it never will. However, better support for coroutine
Coroutine

In computer science, coroutines are program components that generalize subroutines to allow multiple entry points for suspending and resuming of execution at certain locations....
-like functionality is provided in 2.5, by extending Python's generators
Generator (computer science)

In computer science, a generator is a special subroutine that can be used to control the iteration behaviour of a control flow#Loops. A generator is very similar to a function that returns an array, in that a generator has parameters, can be called, and generates a sequence of values....
. Prior to 2.5, generators were lazy
Lazy evaluation

In computer programming, lazy evaluation is the technique of delaying a computation until such time as the result of the computation is known to be needed....
 iterator
Iterator

In computer science, an iterator is an object that allows a programmer to traverse through all the elements of a Collection , regardless of its specific implementation....
s; information was passed unidirectionally out of the generator. As of Python 2.5, it is possible to pass information back into a generator function.

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
Syntactic sugar

Syntactic sugar is a term coined by Peter J. Landin for additions to the syntax of a computer language that do not affect its Function but make it "sweeter" for humans to use....
 for Class.method(instance, argument). Python methods have an explicit self
This (computer science)

In many object-oriented programming programming languages, this is a keyword that is used in instance methods to refer to the object on which they are working....
parameter to access instance data, in contrast to the implicit self in some other object-oriented programming languages (for example, Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
, C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
 or Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
).

Typing

Python uses duck typing
Duck typing

In computer programming, duck typing is a style of dynamic typing in which an object's current set of Method s and properties determines the valid semantics, rather than its inheritance from a particular class or implementation of a specific interface....
 and has typed objects but untyped variable names. Type constraints are not checked at compile time
Compile time

In computer science, compile time refers to either the operations performed by a compiler , programming language requirements that must be met by source code for it to be successfully compiled , or properties of the program that can be reasoned about at compile time....
; rather, operations on an object may fail, signifying that the given object is not of a suitable type. Despite being dynamically typed, Python is strongly typed, forbidding nonsense operations (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 class
Class (computer science)

In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
es, which are most often used for an object-oriented style of programming. New instances of classes are constructed by calling the class (for example, FooClass), and the classes themselves are instances of the metaclass
Metaclass

In object-oriented programming Computer programming, a metaclass is a Class whose instances are classes. Just as an ordinary class defines the behavior of certain objects, a metaclass defines the behavior of certain classes and their instances....
 type (itself an instance of itself), allowing metaprogramming
Metaprogramming

Metaprogramming is the writing of computer programs that write or manipulate other programs as their data, or that do part of the work at runtime that would otherwise be done at compile time....
 and reflection.

Here is a summary of Python's built-in types:
Type Description Syntax Example
str
String (computer science)

In computer programming and some branches of mathematics, a string is an ordered sequence of symbols. These symbols are chosen from a predetermined set or alphabet....
An immutable
Immutable object

In object-oriented computer programming and Functional_programming programming, an immutable object is an object whose state cannot be modified after it is created....
 sequence of Unicode
Unicode

Unicode is a computing industry standard allowing computers to consistently represent and manipulate Character expressed in most of the world's writing systems....
 characters
'Wikipedia'
"Wikipedia"
byte
Byte

A byte is a basic unit of measurement of Computer storage in computer science. In many computer architectures it is a Byte addressing memory address space....
s
An immutable sequence of bytes b'Some ASCII'
b"Some ASCII"
list Mutable, can contain mixed types [4.0, 'string', True]
tuple
Tuple

In mathematics, a tuple is a sequence of a specific number of values, called the components of the tuple. These components can be any kind of mathematical objects, where each component of a tuple is a value of a specified type....
Immutable, can contain mixed types (4.0, 'string', True)
set
Set (computer science)

In computer science, a set is a collection of certain values, without any particular Canonical order, and no repeated values. It corresponds with a finite set in mathematics....
, frozenset
Unordered, contains no duplicates
frozenset([4.0, 'string', True])
dict
Associative array

An associative array is an abstract data type composed of a Collection of unique keys and a collection of values, where each key is associated with one value ....
A mutable group of key and value pairs
int
Integer (computer science)

In computer science, the term integer is used to refer to a data type which represents some finite subset of the mathematical integers. These are also known as integral data types....
An immutable fixed precision number of unlimited magnitude 42
float
Floating point

In computing, floating point describes a system for numerical representation in which a String of digits represents a rational number.The term floating point refers to the fact that the radix point can "float": that is, it can be placed anywhere relative to the Significant figures of the number....
An immutable floating point
Floating point

In computing, floating point describes a system for numerical representation in which a String of digits represents a rational number.The term floating point refers to the fact that the radix point can "float": that is, it can be placed anywhere relative to the Significant figures of the number....
 number (system-defined precision)
3.1415927
complex
Complex number

In mathematics, the complex numbers are an extension of the real numbers obtained by adjoining an imaginary unit, denoted i, which satisfies:...
An immutable complex number
Complex number

In mathematics, the complex numbers are an extension of the real numbers obtained by adjoining an imaginary unit, denoted i, which satisfies:...
 with real number and imaginary parts
3+2j
bool An immutable truth valueTrue
False


Implementations


CPython


The mainstream Python implementation, known as CPython
CPython

CPython is the default, most-widely used implementation of the Python . It is written in C . In addition to CPython, there are two other production-quality Python implementations: Jython, written in Java , and IronPython, which is written for the Common Language Runtime, as well as several experimental implementations....
, is written in C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
 meeting the C89 standard,. CPython compiles the Python program into intermediate bytecode
Bytecode

Bytecode is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software Interpreter as well as being suitable for further compilation into machine language....
, which is then executed by the virtual machine. It is distributed with a large standard library written in a mixture of C and Python. CPython ships in versions for many platforms, including Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 and most modern Unix-like
Unix-like

A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
 systems. CPython was intended from almost its very conception to be cross-platform; its use and development on esoteric platforms such as Amoeba, alongside more conventional ones like Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 and Mac OS
Mac OS

Mac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems....
, has greatly helped in this regard.

Stackless Python
Stackless Python

Stackless Python, or Stackless, is a Python interpreter, so named because it avoids depending on the C call stack for its own stack. The most prominent feature of Stackless is Microthread, which avoid much of the overhead associated with usual operating system Thread s....
 is a significant fork of CPython that implements microthread
Microthread

Microthreads are small code fragments that can be run concurrently to gain increased performance in microprocessors. They provide an execution model that uses a few additional instructions in a conventional processor to break code down into fragments that execute simultaneously....
s; it does not use the C memory stack. CPython uses a GIL
Global Interpreter Lock

Global Interpreter Lock is a mutual exclusion lock held by a programming language interpreter Thread to avoid sharing code that is not thread-safe with other threads....
 to allow only one thread to execute at a time while the Stackless Python threads are independent of the OS and can run concurrently. Stackless Python is better suited to scalable tasks and for use on microcontrollers or other limited resource platforms due to the thread's light weight. It can be expected to run on approximately the same platforms that CPython runs on.

Alternative implementations

Jython
Jython

Jython, successor of JPython, is an implementation of the Python written in Java ....
 compiles the Python program into Java byte code, which can then be executed by every Java Virtual Machine
Java Virtual Machine

A Java Virtual Machine is a set of computer software programs and data structures which use a virtual machine model for the execution of other computer programs and Scripting language....
 implementation. This also enables the utilization of Java class library functions from the Python program. IronPython
IronPython

IronPython is an implementation of the Python targeting the .NET Framework and Mono , created by Jim Hugunin. Version 1.0 was released on September 5, 2006....
 follows a similar approach in order to run Python programs on the .NET Common Language Runtime
Common Language Runtime

The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code....
. PyPy
PyPy

PyPy is a self-hosting Interpreter for the Python ....
 is an experimental self-hosting
Self-hosting

The term self-hosting was coined to refer to the use of a computer program as part of the toolchain or operating system that produces new versions of that same program?for example, a compiler that can compile its own source code....
 implementation of Python, written in Python, that can output several types of bytecode
Bytecode

Bytecode is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software Interpreter as well as being suitable for further compilation into machine language....
, object code and intermediate language
Intermediate language

In computer science, an intermediate language is the language of an abstract machine designed to aid in the analysis of computer programs. The term comes from their use in compilers, where a compiler first translates the source code of a program into a form more suitable for code-improving transformations, as an intermediate step before gener...
s. There also exist compilers to high-level object language
Object language

Object language has meaning in contexts of computer programming and operation, and in linguistics and logic....
s, with either unrestricted Python, a restricted subset of Python, or a language similar to Python as the source language. PyPy is of this type, compiling RPython
RPython

RPython is a subset of the Python that is able to be statically compiled. It was created by the PyPy project.External links *...
 to several languages; other examples include Pyjamas
Pyjamas (software)

Pyjamas is a tool and framework for developing AJAX applications and Rich_Internet_Applications in python. It contains a stand-alone Python -to-Javascript compiler, an AJAX Application framework and Widget set, and through use of these components, developers can write comprehensive applications, to run in all major web browsers, without writi...
 compiling to Javascript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
; Shed Skin
Shed Skin

Shed Skin is an experimental compiler that translates pure but implicitly Type systems Python programs into optimized C++. Programs often must be modified to satisfy the typing restriction, but remain valid Python after modification....
 compiling to C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
; and Cython
Cython

Cython is a programming language that simplifies the writing of C extension modules for Python . The language's syntax is very similar to Python, but it supports calling C functions and declaring C types on variables and class attributes....
 & Pyrex compiling to C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
.

In 2005 Nokia
Nokia

Nokia Corporation is a Finland Multinational corporation communications corporation, headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki....
 released a Python interpreter for the Series 60 mobile phone
Mobile phone

A mobile phone is a long-range, electronic device used for mobile voice or data communication over a network of specialized base stations known as cell sites....
s called PyS60. It includes many of the modules from the CPython implementations and some additional modules for integration with the Symbian operating system. This project has been kept up to date to run on all variants of the S60 platform and there are several third party modules available such as and . There is also a Python interpreter for Windows CE devices (including Pocket PC). It is called PythonCE. There are additional tools available for easy application and GUI development.

ChinesePython
ChinesePython

ChinesePython is a Python programming language using the Chinese language lexicon. Besides reserved words and variable names, most data type operations can be coded in Chinese as well....
is a Python programming language using Chinese language lexicon. Besides reserved words and variable names, most data type operations can be coded in Chinese as well.

Interpretational semantics


Most Python implementations (including CPython, the primary implementation) can function as a command line interpreter
Command line interpreter

A command-line interpreter is a computer program that reads lines of text entered by a user and interprets them in the context of a given operating system or programming language....
, for which the user enters statements sequentially and receives the results immediately. In short, Python acts as a shell
Shell (computing)

In computing, a shell is a piece of software that provides an Interface for users. Typically, the term refers to an operating system shell which provides access to the services of a kernel ....
. While the semantics of the other modes of execution (bytecode compilation, or compilation to native code) preserve the sequential semantics, they offer a speed boost at the cost of interactivity, so they are usually only used outside of a command-line interaction (eg, when importing a module).

Other shells add capabilities beyond those in the basic interpreter, including IDLE
IDLE (Python)

IDLE is an Integrated DeveLopment Environment for Python , which is bundled in each release of the programming tool since 2.3....
 and IPython
IPython

IPython is an Shell for the Python that offers enhanced Introspection , additional shell syntax, code highlighting, and tab completion. It is a component of the SciPy package....
. While generally following the visual style of the Python shell, they implement features like auto-completion, retention of session state, and syntax highlighting.

Some implementations can compile not only to bytecode, but can turn Python code into machine code
Machine code

Machine code or machine language is a system of instructions and data executed directly by a computer's central processing unit. Machine code may be regarded as a primitive programming language or as the lowest-level representation of a compiled and/or assembly language computer program....
. So far, this has only been done for restricted subsets of Python. PyPy takes this approach, naming its restricted compilable version of Python RPython
RPython

RPython is a subset of the Python that is able to be statically compiled. It was created by the PyPy project.External links *...
.

Psyco
Psyco

Psyco is a run-time algorithm specialisation just-in-time compiler for Python developed by Armin Rigo.Psyco runs on BSD-derived operating systems, Linux, Mac OS X and Windows using 32-bit Intel-compatible processors....
 is a specialising just in time compiler that integrates with CPython and transforms bytecode to machine code at runtime. The produced code is specialised for certain data types and is faster than standard Python code. Psyco is compatible with all Python code, not only a subset.

Development

Python development is conducted largely through the Python Enhancement Proposal (or "PEP") process. PEPs are standardized design documents providing general information related to Python, including proposals, descriptions, design rationale
Design Rationale

File:Decision Based Design Structure.jpgA Design Rationale is a framework of the reasons behind decisions made when designing a system or artifact....
s, and explanations for language features. Outstanding PEPs are reviewed and commented upon by Van Rossum, the Python project's Benevolent Dictator for Life ( leader / language architect). CPython's developers also communicate over a mailing list, python-dev, which is the primary forum for discussion about the language's development; specific issues are discussed in the roundup
Roundup (issue tracker)

*For other uses of the phrase "Round Up" see Round Up Roundup is an Open Source issue tracking system or bug tracking system featuring a command-line, web and e-mail interface....
 bug tracker maintained at python.org. Development takes place at the self-hosted svn.python.org.

CPython's public releases come in three types, distinguished by which part of the version number is incremented:
  • backwards-incompatible versions, where code is expected to break and must be manually ported. The first part of the version number is incremented. These releases happen irregularly—for example, version 3.0 was released 8 years after 2.0.
  • major or 'feature' releases, which are largely compatible but introduce new features. The second part of the version number is incremented. These releases are scheduled to occur roughly every 18 months, and each major version is supported by bugfixes for several years after its release.
  • bugfix releases, which introduce no new features but fix bugs. The third and final part of the version number is incremented. These releases are made whenever a sufficient number of bugs have been fixed upstream since the last release, or roughly every 3 months. Security vulnerabilities are also patched in bugfix releases.


A number of alpha, beta, and release-candidates are also released as previews and for testing before the final release is made. Although there is a rough schedule for each release, this is often pushed back if the code is not ready. The development team monitor the state of the code by running the large unit test
Unit test

In computer programming, unit testing is a software design and development method where the programmer gains confidence that individual units of source code are fit for use....
 suite during development, and using the buildbot
BuildBot

BuildBot is a software development continuous integration tool which automates the compile/test cycle required to validate changes to the project code base....
 continuous integration
Continuous integration

Continuous integration describes a set of software engineering practices that speed up the delivery of software by decreasing integration times....
 system.

Standard library

Python has a large standard library, commonly cited as one of Python's greatest strengths, providing pre-written tools suited to many tasks. This is deliberate and has been described as a "batteries included" Python philosophy. The modules of the standard library can be augmented with custom modules written in either C or Python. Recently, Boost C++ Libraries includes a library, Boost.Python, to enable interoperability between C++ and Python. Because of the wide variety of tools provided by the standard library, combined with the ability to use a lower-level language such as C and C++, which is already capable of interfacing between other libraries, Python can be a powerful glue language
Glue language

A glue language is a programming language used for connecting software components together.Examples of glue languages:* Shell scripts* Python ...
 between languages and tools.

The standard library is particularly well tailored to writing Internet-facing applications, with a large number of standard formats and protocols (such as MIME
MIME

Multipurpose Internet Mail Extensions is an Internet standard that extends the format of electronic mail to support:* Text in character sets other than ASCII...
 and HTTP
Hypertext Transfer Protocol

Hypertext Transfer Protocol is an application-level protocol for distributed, collaborative, hypermedia information systems. Its use for retrieving inter-linked resources led to the establishment of the World Wide Web....
) already supported. Modules for creating graphical user interface
Graphical user interface

A graphical user interface is a type of user interface which allows people to human-computer interaction such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment....
s, connecting to relational database
Relational database

A relational database is a database that groups data using common attributes found in the data set. The resulting "clumps" of organized data are much easier for people to understand....
s, arithmetic with arbitrary precision decimals, manipulating regular expression
Regular expression

In computing, regular expressions provide a concise and flexible means for identifying strings of text of interest, such as particular characters, words, or patterns of characters....
s, and doing unit testing are also included.

Some parts of the standard library are covered by specifications (for example, the WSGI implementation wsgiref follows ), but the majority of the modules are not. They are specified by their code, internal documentation, and test suite (if supplied). However, because most of the standard library is cross-platform Python code, there are only a few modules that must be altered or completely rewritten by alternative implementations.

Influences on other languages

Python's design and philosophy have influenced several programming languages:

  • Pyrex
    Pyrex programming language

    Pyrex is a programming language developed to aid in creating Python module . Python provides a C Application programming interface to write extension modules, which allows writing of Subroutine and datatypes in C....
     and its derivative Cython
    Cython

    Cython is a programming language that simplifies the writing of C extension modules for Python . The language's syntax is very similar to Python, but it supports calling C functions and declaring C types on variables and class attributes....
     are code translators that are targeted at writing fast C extensions for the CPython interpreter. The language is mostly Python with syntax extensions for C and C++ features. Both languages produce compilable C code as output.
  • Boo uses indentation, a similar syntax, and a similar object model. However, Boo uses static typing and is closely integrated with the .NET framework
    .NET Framework

    The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
    .
  • Cobra
    Cobra (programming language from Cobra Language LLC)

    Cobra is an object-oriented programming language produced by Cobra Language LLC. Cobra is designed by Chuck Esterbrook, and runs on the Microsoft .NET and Mono frameworks....
     is similar to Python, using indentation for blocks. It offers optional static typing and generates code designed for .NET/Mono. Cobra directly supports design-by-contract
    Design by contract

    Design by Contract or Programming by Contract is an approach to designing computer software. It prescribes that software designers should define Formal methods, precise and verifiable interface specifications for Component-based software engineering#Software component based upon the theory of abstract data types and the conceptual metaph...
    .
  • ECMAScript
    ECMAScript

    ECMAScript is a scripting language, standardized by Ecma International in the ECMA-262 Specification . The language is widely used on the World Wide Web, and is often confused with JavaScript or JScript, the two major Programming language dialect from which ECMAScript was standardized....
     borrowed iterators
    Iterator

    In computer science, an iterator is an object that allows a programmer to traverse through all the elements of a Collection , regardless of its specific implementation....
    , generators
    Generator (computer science)

    In computer science, a generator is a special subroutine that can be used to control the iteration behaviour of a control flow#Loops. A generator is very similar to a function that returns an array, in that a generator has parameters, can be called, and generates a sequence of values....
     and list comprehension
    List comprehension

    A list comprehension is a Syntax of programming languages construct available in some programming languages for creating a list based on existing lists....
    s from Python.
  • Groovy was motivated by the desire to bring the Python design philosophy to Java
    Java (programming language)

    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
    .
  • Converge is syntactically similar to Python, but has a novel approach to generators
    Generator (computer science)

    In computer science, a generator is a special subroutine that can be used to control the iteration behaviour of a control flow#Loops. A generator is very similar to a function that returns an array, in that a generator has parameters, can be called, and generates a sequence of values....
     and backtracking
    Backtracking

    Backtracking is a general algorithm for finding all solutions to some computational problem, that incrementally builds candidates to the solutions, and abandons each partial candidate c as soon as it determines that c cannot possibly be completed to a valid solution ....
     as well as macros and compile-time metaprogramming
    Metaprogramming

    Metaprogramming is the writing of computer programs that write or manipulate other programs as their data, or that do part of the work at runtime that would otherwise be done at compile time....
    .
  • OCaml has an optional syntax, called twt (That Whitespace Thing), and a new Batteries Included approach, both inspired by Python.


Python's development practices have also been emulated by other languages. The practice of requiring a document describing the rationale for, and issues surrounding, a change to the language (ie, a PEP) is also used in Tcl
Tcl

Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
 and Erlang because of Python's influence.

See also

  • List of programming languages
    List of programming languages

    There are thousands of computer programming programming languages. These are listed in various ways:*Timeline of programming languages*List of programming languages by category – by general usage and context...
  • Comparison of computer shells
    Comparison of computer shells

    A command shell is a command line interface computer program to an operating system.ReferencesExternal links...
  • Comparison of programming languages
    Comparison of programming languages

    Programming languages are used for controlling the behavior of a machine . Like natural languages, programming languages conform to rules for syntax and semantics....
  • List of applications written in Python
  • List of integrated development environments for Python
  • Scripting language
    Scripting language

    A scripting language, script language or extension language, is a programming language that allows some control of a single or many Application software....


External links