# Python Programming/Overview


Python is a high-level,
structured,
open-source programming language that can be
used for a wide variety of programming tasks. Python was created by
Guido Van Rossum in the early 1990s; its following has grown steadily
and interest has increased markedly in the last few years or so. It is
named after Monty Python\'s Flying Circus comedy program.

Python is used extensively for system administration (many vital
components of Linux distributions are written in
it); also, it is a great language to teach programming to novices. NASA
has used Python for its software systems and has adopted it as the
standard scripting language for its Integrated Planning System. Python
is also extensively used by Google to implement many components of its
Web Crawler and Search Engine & Yahoo! for managing its discussion
groups.

Python within itself is an interpreted programming language that is
automatically compiled into bytecode before execution (the bytecode is
then normally saved to disk, just as automatically, so that compilation
need not happen again until and unless the source gets changed). It is
also a dynamically typed language that includes (but does not require
one to use) object-oriented features and constructs.

The most unusual aspect of Python is that whitespace is significant;
instead of block delimiters (braces → \"{}\" in the C family of
languages), indentation is used to indicate where blocks begin and end.

For example, the following Python code can be interactively typed at an
interpreter prompt, display the famous \"Hello World!\" on the user
screen:

``` python
 >>> print ("Hello World!")
Hello World!
```

Another great feature of Python is its availability for all platforms.
Python can run on Microsoft Windows, Macintosh and all Linux
distributions with ease. This makes the programs very portable, as any
program written for one platform can easily be used on another.

Python provides a powerful assortment of built-in types (e.g., lists,
dictionaries and strings), a number of built-in functions, and a few
constructs, mostly statements. For example, loop constructs that can
iterate over items in a collection instead of being limited to a simple
range of integer values. Python also comes with a powerful standard
library, which includes
hundreds of modules to provide routines for a wide variety of services
including regular
expressions and
TCP/IP sessions.

Python is used and supported by a large Python
Community that exists on
the Internet. The mailing lists and news
groups like the tutor
list actively support
and help new python programmers. While they discourage doing homework
for you, they are quite helpful and are populated by the authors of many
of the Python textbooks currently available on the market.

*Python 2 vs. Python 3:* Years ago, the Python developers made the
decision to come up with a major new version of Python, which became the
3.*x* series of versions. The 3.x versions are *backward-incompatible*
with Python 2.*x*: certain old features (like the handling of Unicode
strings) were deemed to be too unwieldy or broken to be worth carrying
forward. Instead, new, cleaner ways of achieving the same results were
added. See also ../Python 2 vs. Python
3/ chapter.

