1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
`View the original notebook on nbviewer <http://nbviewer.jupyter.org/github/jupyter/notebook/blob/master/docs/source/examples/Notebook/Running%20Code.ipynb>`__
Running Code
============
First and foremost, the Jupyter Notebook is an interactive environment
for writing and running code. The notebook is capable of running code in
a wide range of languages. However, each notebook is associated with a
single kernel. This notebook is associated with the IPython kernel,
therefor runs Python code.
Code cells allow you to enter and run code
------------------------------------------
Run a code cell using ``Shift-Enter`` or pressing the
.. raw:: html
<button class="btn btn-default btn-xs">
.. raw:: html
</button>
button in the toolbar above:
.. code:: python
a = 10
.. code:: python
print(a)
There are two other keyboard shortcuts for running code:
- ``Alt-Enter`` runs the current cell and inserts a new one below.
- ``Ctrl-Enter`` run the current cell and enters command mode.
Managing the Kernel
-------------------
Code is run in a separate process called the Kernel. The Kernel can be
interrupted or restarted. Try running the following cell and then hit
the
.. raw:: html
<button class="btn btn-default btn-xs">
.. raw:: html
</button>
button in the toolbar above.
.. code:: python
import time
time.sleep(10)
If the Kernel dies you will be prompted to restart it. Here we call the
low-level system libc.time routine with the wrong argument via ctypes to
segfault the Python interpreter:
.. 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!!
Cell menu
---------
The "Cell" menu has a number of menu items for running code in different
ways. These includes:
- Run and Select Below
- Run and Insert Below
- Run All
- Run All Above
- Run All Below
Restarting the kernels
----------------------
The kernel maintains the state of a notebook's computations. You can
reset this state by restarting the kernel. This is done by clicking on
the
.. raw:: html
<button class="btn btn-default btn-xs">
.. raw:: html
</button>
in the toolbar above.
sys.stdout and sys.stderr
-------------------------
The stdout and stderr streams are displayed as text in the output area.
.. code:: python
print("hi, stdout")
.. code:: python
from __future__ import print_function
print('hi, stderr', file=sys.stderr)
Output is asynchronous
----------------------
All output is displayed asynchronously as it is generated in the Kernel.
If you execute the next cell, you will see the output one piece at a
time, not all at the end.
.. code:: python
import time, sys
for i in range(8):
print(i)
time.sleep(0.5)
Large outputs
-------------
To better handle large outputs, the output area can be collapsed. Run
the following cell and then single- or double- click on the active area
to the left of the output:
.. code:: python
for i in range(50):
print(i)
Beyond a certain point, output will scroll automatically:
.. code:: python
for i in range(500):
print(2**i - 1)
`View the original notebook on nbviewer <http://nbviewer.jupyter.org/github/jupyter/notebook/blob/master/docs/source/examples/Notebook/Running%20Code.ipynb>`__
|