re-posted with permission from Software Carpentry

My favorite tool is … IPython.

IPython is a Python interpreter with added features that make it an invaluable tool for interactive coding and data exploration. IPython is most commonly taught via the Jupyter notebook, an interactive web-based tool for evaluating code, but IPython can be used on its own directly in the terminal as a replacement for the standard Python interpreter.

Why I like it

  • You can run Unix commands directly in IPython. For instance, if you want to load a file from another directory, it is convenient to cd into the directory from within the IPython window.
  • IPython has an extensive tab autocomplete for function names, function arguments, file paths, and object names.
  • It comes equipped with “magic” commands: functions that assist in programming and that can be called with a single word starting with %%paste takes whatever is on your clipboard and formats it nicely so IPython can read it – useful for pasting in large blocks of code. %timeit runs time tests and %lprun runs line profiling automatically.
  • The interpreter saves your command history across sessions. In case you close the window before you’re done, you can fire IPython back up and search through the history.
  • IPython makes it easy to test my code interactively, piece by piece.

– Kellie Ottoboni, PhD Candidate in Statistics, Berkeley

Have you got a favourite tool you would like to tell the world about? Head over to Software Carpentry to submit!