Jupyter Notebook gives you a convenient way to experiment with Python code, interspersing your experiments with notes and documentation. You can do all of this without having to muck about on the command line, and the resulting file can be easily published and shared with other people. In this course, I'll be using Jupyter Notebook to do in-class examples, and the notes will be made available as Jupyter Notebooks. Some of the homeworks will be assigned in the form of Jupyter Notebooks as well.
An Jupyter Notebook consists of a number of "cells," stacked on the page from top to bottom. Cells can have text or code in them. You can change a cell's type using the "Cell" menu at the top of the page; go to
Cell > Cell Type and select either
Code for Python code or
Markdown for text. (You can also change this for the current cell using the drop-down menu in the toolbar.)
Make a new cell, change its type to
Markdown, type some stuff and press
Ctrl-Enter. Jupyter Notebook will "render" the text and display it on the page in rendered format. You can hit
Enter or click in the cell to edit its contents again. Text in
Markdown cells is rendered according to a set of conventions called Markdown. Markdown is a simple language for marking up text with basic text formatting information (such as bold, italics, hyperlinks, tables, etc.). Here's a tutorial. You'll also be learning Markdown in more detail in the Foundations course.
You can also press
Alt-Enter to render the current cell and create a new cell. New cells will by default be
Code cells. Try it now!
print("This is a code cell.") print("") print("Any Python code you type in this cell will be run when you press the 'Run' button,") print("or when you press Ctrl-Enter.") print("") print("If the code evaluates to something, or if it produces output, that output will be") print("shown beneath the cell after you run it.")
This is a code cell. Any Python code you type in this cell will be run when you press the 'Run' button, or when you press Ctrl-Enter. If the code evaluates to something, or if it produces output, that output will be shown beneath the cell after you run it.
print("If your Python code generates an error, the error will be displayed in addition") print("to any output already produced.") 1 / 0
If your Python code generates an error, the error will be displayed in addition to any output already produced.
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) <ipython-input-3-b1c1f52e3cdc> in <module>() 2 print("to any output already produced.") 3 ----> 4 1 / 0 ZeroDivisionError: division by zero
Any variables you define or modules you import in one code cell will be available in subsequent code cells. Start with this:
import random stuff = ["cheddar", "daguerrotype", "elephant", "flea market"]
... and in subsequent cells you can do this:
As mentioned above,
Ctrl-Enter runs the current cell;
Alt-Enter runs the current cell and then creates a new cell.
Enter will start editing whichever cell is currently selected. To quit editing a cell, hit
Esc. If the cursor isn't currently active in any cell (i.e., after you've hit
Esc), a number of other keyboard shortcuts are available to you:
mconverts the selected cell to a Markdown cell
binserts a new cell below the selected one
x"cuts" the selected cell;
vpastes a previously cut cell below the selected cell
hbrings up a help screen with many more shortcuts.
Cmd-S at any time to save your notebook. Jupyter Notebook also automatically saves occasionally. Make sure to give your notebook a descriptive title by clicking on "Untitled0" at the top of the page and replacing the text accordingly. Notebooks you save will be available on your server whenever you log in again, from wherever you log into the server.
You can "download" your notebook in various formats via
File > Download as. You can download your notebook as a static HTML file (for, e.g., uploading to a web site), or as a
.ipynb file, which you can share with other people who have Jupyter Notebook or make available online through, e.g., nbviewer.
We'll discuss Jupyter Notebook features in more detail as the course progresses. In the meantime, consider consulting the official documentation and tutorials.