Python Programming Language

Home Search Download Documentation
Help News Community SIGs
Current docs
Non-English docs
Books (PSA bookstore)
Language comparisons
Guido's essays
Topic guides
See also
Commercial projects
Email Us
[email protected]

An Introduction to Python

Python is a portable, interpreted, object-oriented programming language. Its development started in 1990 at CWI in Amsterdam, and continues at CNRI in Reston, Va. The language has an elegant (but not over-simplified) syntax; a small number of powerful high-level data types are built in. Python can be extended in a systematic fashion by adding new modules implemented in a compiled language such as C or C++. Such extension modules can define new functions and variables as well as new object types.

Here's a simple function written in Python, which inverts a table (represented as a Python dictionary):

def invert(table):
    index = {}                # empty dictionary
    for key in table.keys():
        value = table[key]
        if not index.has_key(value):
            index[value] = [] # empty list
    return index

Note how Python uses indentation for statement grouping. Comments are introduced by a `#' character.

Here's an example of interactive use of this function (">>> " is the interpreter's prompt):

>>> phonebook = {'guido': 4127, 'sjoerd': 4127, 'jack': 4098}
>>> phonebook['dcab'] = 4147             # add an entry
>>> inverted_phonebook = invert(phonebook)
>>> print inverted_phonebook
{4098: ['jack'], 4127: ['guido', 'sjoerd'], 4147: ['dcab']}

Python has a full set of string operations (including regular expression matching), and frees the user from most hassles of memory management. These and other features make it an ideal language for prototype development and other ad-hoc programming tasks.

Python also has some features that make it possible to write large programs, even though it lacks most forms of compile-time checking: a program can be constructed out of a number of modules, each of which defines its own name space, and modules can define classes which provide further encapsulation. Exception handling makes it possible to catch errors where required without cluttering all code with error checking.

A large number of extension modules have been developed for Python. Some are part of the standard library of tools, usable in any Python program (e.g. the math library and regular expressions). Others are specific to a particular platform or environment (e.g. UNIX, IP networking or X11) or provide application-specific functionality (e.g. image or sound processing).

Python also provides facilities for introspection, so that e.g. a debugger or profiler for Python programs can be written in Python itself. There is also a generic way to convert an object into a stream of bytes and back, which can be used to implement object persistency as well as various distributed object models.

Want to know more?

See the links in the sidebar, or see the documentation index.