|
|
||||||||||||||||||||||||
|
An Introduction to PythonPython is a portable, interpreted, object-oriented programming language. Its development started in 1990 at CWI in Amsterdam, and continues under the ownership of the Python Software Foundation. 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 index[value].append(key) 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 (for example, UNIX, IP networking, or X11) or provide application-specific functionality (such as image or sound processing). Python also provides facilities for introspection, so that a debugger or profiler (or other development tools) 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. |