Also "bpython" is useful for exploratory programming in python and is an able replacement for the standard python shell http://bpython-interpreter.org/ The screenshots speak for themselves: http://bpython-interpreter.org/screenshots/ Some of the features I love are:
* Readline-like autocomplete with suggestions displayed as you type.
* In-line syntax highlighting.
* Displays expected parameter list for any Python function.
* "Rewind" function to pop the last line of code from memory and re-evaluate. etc