Tag Info

Python is a dynamic and strongly typed programming language that is designed to emphasize usability. Two similar but incompatible versions of Python are in widespread use (2 and 3). Please consider mentioning the version and implementation that you are using when asking a question about Python.

Python allows programmers to express concepts in fewer lines of code than would be possible in languages such as c, and the language has constructs intended to be used to create clear programs in a variety of domains.

Two similar but incompatible versions of Python are in widespread use (2 and 3). Please consider mentioning the version and implementation that you are using when asking a question about Python.

Python supports multiple programming paradigms, including object-oriented, imperative and functional programming styles. It features a fully dynamic type system and automatic memory management, similar to that of scheme, ruby, perl and tcl.

Like other dynamic languages, Python is often used as a scripting language, but is also used in a wide range of non-scripting contexts. Using third-party tools, Python code can be packaged into standalone executable programs. Python interpreters are available for many operating systems.

cpython, the reference implementation of Python, is free and open source software and has a community-based development model, as do nearly all of its alternative implementations. There are a wide variety of implementations more suited for specific environments or tasks.

The philosophy of Python is succinctly formulated in The Zen of Python written by Tim Peters, which can be revealed by issuing this command at the interactive interpreter:

>>> import this

The documentation can also be accessed offline for your installation of Python in the following manner:

Going into Your_Python_install_dir/Doc. There is a complete Python documentation present for the version of Python installed on your computer.

Unlike many other languages Python uses an indentation based syntax and this may take some getting used to for programmers familiar with braces for syntax.

>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance

To help with the transition it is a recommendation to use a properly configured text-editor created for programmers or an IDE. Python comes with a basic IDE called IDLE to get you started. Other popular examples are the charity-ware vim, the free GNU emacs and eclipse+pydev. Take a look at this IDE comparison list for many other alternatives.

Tagging recommendation:

Use the python tag for all Python related questions. If you believe your question includes issues specific to incompatibilities between Python 2.x and Python 3.x, use python-2.x or python-3.x in addition to the main python tag. If you believe your question may be even more specific, you can include a version specific tag such as python-2.7.

Also, consider including the tag for the specific implementation you are using other than cpython, as the use of cpython is assumed unless explicitly stated otherwise.

References

Official documentation for the current stable versions: 2.7.9 and 3.4.2.

The Web framework for perfectionists (with deadlines). Django makes it easier to build better Web apps more quickly and with less code. Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. It lets you build high-performing, elegant Web applications quickly. Django focuses on automating as much as possible and adhering to the DRY (Don't Repeat Yourself) principle.

Tornado is a Python web framework and asynchronous networking library. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.

CherryPy is a pythonic, object-oriented web framework that enables developers to build web applications in much the same way they would build any other object-oriented Python program. This results in smaller source code developed in less time. CherryPy has been in use for over 7 years and it is being used in production by many sites, from the simplest to the most demanding.

A lightweight Web framework emphasizing flexibility and rapid development. It combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python web framework. It's also one of the first projects to leverage the emerging WSGI standard, which allows extensive re-use and flexibility but only if you need it.

web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain; you can use it for whatever purpose with absolutely no restrictions. web.py lets you write web apps in Python.

Built on the existing Zope 3 libraries, but aims to provide an easier learning curve and a more agile development experience. Grok does this by placing an emphasis on convention over configuration and DRY (Don't Repeat Yourself).

SciPy is an open source library for the Python programming language consisting of mathematical algorithms and functions often used in science and engineering. SciPy includes algorithms and tools for tasks such as optimization, clustering, discrete Fourier transforms, linear algebra, signal processing and multi-dimensional image processing. SciPy is closely related to NumPy and depends on many NumPy functions, including a multidimensional array that is used as the basic data structure in SciPy.

matplotlib is a plotting library for the Python programming language and its NumPy numerical mathematics extension. It provides an object-oriented API for embedding plots into applications using general-purpose GUI toolkits like wxPython, Qt, or GTK. There is also a procedural "pylab" interface based on a state machine (like OpenGL), designed to closely resemble that of MATLAB.

Blender is a free and open source 3D animation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation.