<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Notebook Tour
Step1:  The Jupyter Notebook is a web-based application that enables users to create documents that combine live code wth narrative next, equations, images, visualizations and HTML/JavaScript widgets.
This notebook gives an overview of the Jupyter Notebook and the standard IPython Kernel for running Python code.
Interactive exploration
First and foremost, Jupyter is an interactive environment for writing and running code. We provide features to make this as pleasant as possible.
Step2:  Inline plotting
Step3:  Seamless access to the system shell
Step4:  Narrative text and equations
In addition to code cells, the Notebook offers Markdown cells, which enable the user to create narrative text with embedded LaTeX equations. Here is a cell that includes Maxwell's equations
Step5:  Images
The Image object has a JPEG/PNG representation that is rendered by the Notebook
Step6:  This representation is displayed if the object is returned from an expression
Step7:  Or you can manually display the object using display
Step9:  HTML
The HTML object has an HTML representation
Step10:  JavaScript
The Javascript object has a "representation" that runs JavaScript code in the context of the Notebook.
Step11:  LaTeX
This display architecture also understands objects that have a LaTeX representation. This is best illustrated by SymPy, which is a symbolic mathematics package for Python.
Step12:  When a symbolic expression is passed to display or returned from an expression, the LaTeX representation is computed and displayed in the Notebook
Step13:  nbviewer
nbviewer is a website for sharing Jupyter Notebooks on the web. It uses nbconvert to create a static HTML rendering of any notebook on the internet. This makes it easy to share notebooks with anyone in the world, without their having to install, or even know anything about, Jupyter or IPython.
<ASSISTANT_TASK:>
Python Code:
from IPython.display import display, Image, HTML
from talktools import website, nbviewer
Explanation: Notebook Tour
End of explanation
2+2
import math
math.atan?
Explanation: The Jupyter Notebook is a web-based application that enables users to create documents that combine live code wth narrative next, equations, images, visualizations and HTML/JavaScript widgets.
This notebook gives an overview of the Jupyter Notebook and the standard IPython Kernel for running Python code.
Interactive exploration
First and foremost, Jupyter is an interactive environment for writing and running code. We provide features to make this as pleasant as possible.
End of explanation
%pylab inline
plot(rand(50))
Explanation: Inline plotting:
End of explanation
!ls -al
Explanation: Seamless access to the system shell:
End of explanation
from IPython.display import display
Explanation: Narrative text and equations
In addition to code cells, the Notebook offers Markdown cells, which enable the user to create narrative text with embedded LaTeX equations. Here is a cell that includes Maxwell's equations:
\begin{aligned}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \   \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \
\nabla \cdot \vec{\mathbf{B}} & = 0 \end{aligned}
Markdown cells enable users to create complex narratives that tell stories using code and data.
We are calling this literate computing as it is similar to Knuth's literate programming, but involves live code and data.
Rich output
Programming langauges, including Python, allow the writing of textual output to stdout and stderr. Jupyter and IPython extend this idea and allows objects to declare rich output representations:
JavaScript
HTML
LaTeX
PDF
PNG/JPEG
SVG
In IPython, the display function is like print for these rich representations:
End of explanation
from IPython.display import Image
i = Image("images/jupyter_logo.png")
Explanation: Images
The Image object has a JPEG/PNG representation that is rendered by the Notebook:
End of explanation
print(i)
i
Explanation: This representation is displayed if the object is returned from an expression:
End of explanation
display(i)
Explanation: Or you can manually display the object using display:
End of explanation
from IPython.display import HTML
s = <table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
h = HTML(s)
display(h)
Explanation: HTML
The HTML object has an HTML representation:
End of explanation
from IPython.display import Javascript
display(Javascript("alert('hi');"))
Explanation: JavaScript
The Javascript object has a "representation" that runs JavaScript code in the context of the Notebook.
End of explanation
from __future__ import division
from sympy import *
x, y, z = symbols("x y z")
init_printing(use_latex='mathjax')
Explanation: LaTeX
This display architecture also understands objects that have a LaTeX representation. This is best illustrated by SymPy, which is a symbolic mathematics package for Python.
End of explanation
Rational(3,2)*pi + exp(I*x) / (x**2 + y)
(1/cos(x)).series(x, 0, 12)
Explanation: When a symbolic expression is passed to display or returned from an expression, the LaTeX representation is computed and displayed in the Notebook:
End of explanation
website('https://nbviewer.jupyter.org')
Explanation: nbviewer
nbviewer is a website for sharing Jupyter Notebooks on the web. It uses nbconvert to create a static HTML rendering of any notebook on the internet. This makes it easy to share notebooks with anyone in the world, without their having to install, or even know anything about, Jupyter or IPython.
End of explanation
<END_TASK>