# Setting Up a Development Environment¶

## What You Will Learn¶

• An IDE is a sophisticated text editor that allows you edit, run, and debug code.

• The Python shell is an interface for typing Python code and executing it directly in your computer’s terminal.

• The IPython shell is a much nicer version of the Python shell - it provides syntax highlighting, autocompletion, and other features.

• The Jupyter Notebook is a powerful tool for prototyping and experimenting with code, as well as visualizing data and writing nicely-formatted text. We will be using this throughout the course.

## Integrated Development Environments¶

In Section 1 of this module, we learned that a Python script is simply a text file that contains Python code. Aside from using a .py suffix for the filename, there is nothing that differentiates this sort of file from any other text file. That being said, it is not a good idea to use a simple text editor to write Python code (and it is a big mistake use word-processing software, like Microsoft Word, to do so). Instead we want an “integrated development environment” (IDE) that will facilitate our code-writing.

First and foremost, a good IDE will provide a text editor that will:

• check your code for syntax errors (a misspelled function name, a reference to an undefined variable, etc)

• colorize your code so that it is easy to distinguish, for instance, numbers from character strings.

• enable you to easily look up documentation and definitions for functions that you are using.

• autocomplete the names of variables and functions as you are typing them.

An IDE also often provides debugging tools so that you can test your code; it will also typically interface with version-control software, like Git, so that you can keep track of versions of your code as you modify it. We will not discuss these useful, but more advanced features here.