A brief tour of the IPython notebook ==================================== This document will give you a brief tour of the capabilities of the IPython notebook. You can view its contents by scrolling around, or execute each cell by typing ``Shift-Enter``. After you conclude this brief high-level tour, you should read the accompanying notebook titled ``01_notebook_introduction``, which takes a more step-by-step approach to the features of the system. The rest of the notebooks in this directory illustrate various other aspects and capabilities of the IPython notebook; some of them may require additional libraries to be executed. **NOTE:** This notebook *must* be run from its own directory, so you must ``cd`` to this directory and then start the notebook, but do *not* use the ``--notebook-dir`` option to run it from another location. The first thing you need to know is that you are still controlling the same old IPython you're used to, so things like shell aliases and magic commands still work: In[1]: .. code:: python pwd Out[1]: .. parsed-literal:: u'/Users/minrk/dev/ip/mine/docs/examples/notebooks' In[2]: .. code:: python ls .. parsed-literal:: 00_notebook_tour.ipynb callbacks.ipynb python-logo.svg 01_notebook_introduction.ipynb cython_extension.ipynb rmagic_extension.ipynb Animations_and_Progress.ipynb display_protocol.ipynb sympy.ipynb Capturing Output.ipynb formatting.ipynb sympy_quantum_computing.ipynb Script Magics.ipynb octavemagic_extension.ipynb trapezoid_rule.ipynb animation.m4v progbar.ipynb In[3]: .. code:: python message = 'The IPython notebook is great!' # note: the echo command does not run on Windows, it's a unix command. !echo $message .. parsed-literal:: The IPython notebook is great! Plots with matplotlib --------------------- IPython adds an 'inline' matplotlib backend, which embeds any matplotlib figures into the notebook. In[4]: .. code:: python %pylab inline .. parsed-literal:: Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. For more information, type 'help(pylab)'. In[5]: .. code:: python x = linspace(0, 3*pi, 500) plot(x, sin(x**2)) title('A simple chirp'); .. image:: _fig_07.png You can paste blocks of input with prompt markers, such as those from `the official Python tutorial `_ In[6]: .. code:: python >>> the_world_is_flat = 1 >>> if the_world_is_flat: ... print "Be careful not to fall off!" .. parsed-literal:: Be careful not to fall off! Errors are shown in informative ways: In[7]: .. code:: python %run non_existent_file .. parsed-literal:: ERROR: File `u'non_existent_file.py'` not found. In[8]: .. code:: python x = 1 y = 4 z = y/(1-x) :: --------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) in () 1 x = 1 2 y = 4 ----> 3 z = y/(1-x) ZeroDivisionError: integer division or modulo by zero When IPython needs to display additional information (such as providing details on an object via ``x?`` it will automatically invoke a pager at the bottom of the screen: In[18]: .. code:: python magic Non-blocking output of kernel ----------------------------- If you execute the next cell, you will see the output arriving as it is generated, not all at the end. In[19]: .. code:: python import time, sys for i in range(8): print i, time.sleep(0.5) .. parsed-literal:: 0 1 2 3 4 5 6 7 Clean crash and restart ----------------------- We call the low-level system libc.time routine with the wrong argument via ctypes to segfault the Python interpreter: In[*]: .. code:: python import sys from ctypes import CDLL # This will crash a Linux or Mac system; equivalent calls can be made on Windows dll = 'dylib' if sys.platform == 'darwin' else '.so.6' libc = CDLL("libc.%s" % dll) libc.time(-1) # BOOM!! Markdown cells can contain formatted text and code -------------------------------------------------- You can *italicize*, **boldface** - build - lists and embed code meant for illustration instead of execution in Python: :: def f(x): """a docstring""" return x**2 or other languages: :: if (i=0; i For example, in the example notebook folder, we have the Python logo, addressed as: :: and a video with the HTML5 video tag: ::