summaryrefslogtreecommitdiff
path: root/script2col.rst
diff options
context:
space:
mode:
Diffstat (limited to 'script2col.rst')
-rw-r--r--script2col.rst267
1 files changed, 267 insertions, 0 deletions
diff --git a/script2col.rst b/script2col.rst
new file mode 100644
index 0000000..3e820d6
--- /dev/null
+++ b/script2col.rst
@@ -0,0 +1,267 @@
+.. Objectives
+.. ----------
+
+.. At the end of this tutorial, you will be able to
+
+.. 1. Execute python scripts from command line.
+.. #. Use import in scripts.
+.. #. Import scipy and pylab modules
+.. #. Use python standard modules and 3rd party modules.
+
+
+.. Prerequisites
+.. -------------
+
+.. 1. should have ``pylab`` installed.
+.. #. using plot command interactively.
+.. #. embellishing a plot.
+.. #. saving plots.
+
+.. Author : Anoop Jacob Thomas <anoop@fossee.in>
+ Internal Reviewer : Puneeth
+ External Reviewer :
+ Language Reviewer : Bhanukiran
+ Checklist OK? : <11-11-2010, Anand, OK> [2010-10-05]
+
+
+====================
+Using Python modules
+====================
+
+
+
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show the first slide containing title, name of the production | Hello Friends and Welcome to the spoken tutorial on |
+| team along with the logo of MHRD }}} | 'Using Python Modules'. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to objectives slide }}} | At the end of this tutorial, you will be able to , |
+| | |
+| | 1. Execute python scripts from command line. |
+| | #. Use import in scripts. |
+| | #. Import scipy and pylab modules. |
+| | #. Use python standard modules and 3rd party modules. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Switch to the pre-requisite slide }}} | Before beginning this tutorial,we would suggest you to complete the |
+| | tutorial on "Using plot interactively", "Embellishing a plot" and |
+| | "Saving plots". |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide on running python scripts from | |
+| command line }}} | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | Let us create a simple python script to print hello world. Open your |
+| | text editor and type the following, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ open the text editor and type the following }}} | |
+| :: | |
+| | |
+| print "Hello world!" | |
+| print | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ save the script as hello.py }}} | Now save this script as ``hello.py``, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Open the terminal }}} | Start the ipython interpreter |
+| :: | |
+| | |
+| ipython | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | In the previous tutorials,we have seen how to run a script using |
+| | the IPython interpreter using ``%run`` |
+| %run -i hello.py | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Close the terminal }}} | but this is not the correct way of running a python |
+| | script. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ open terminal and navigate to directory where hello.py was saved }}} | The correct method is to run it using the Python interpreter. Open the |
+| | terminal and navigate to the directory where hello.py is, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | now run the Python script as, |
+| | |
+| python hello.py | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | It executed the script and we got the output ``Hello World!``. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide }}} | The syntax is ``python space filename``. |
+| {{{ highlight ``python filename`` syntax on slide while narrating }}} | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, four plot problem }}} | Now, we have a four plot problem where we have plotted four plots in a |
+| | single figure. Let us run that script from command line. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ open the four_plot.py file in text editor and show }}} | If you don't have the script, then make one with the following set of |
+| {{{ Pause for some time and then continue }}} | commands |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Now let us run four_plot.py as a python script. |
+| | |
+| python four_plot.py | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | Oops! even though it was supposed to work, it didn't. It gave an error |
+| | ``linspace()`` is not defined, which means that the function |
+| | ``linspace()`` is not available in the current name-space. |
+| | |
+| | But if you try to run the same script using ``%run -i four_plot.py`` |
+| | in your IPython interpreter started with the option ``-pylab`` it will |
+| | work, because the ``-pylab`` option does some work for us by importing |
+| | the required modules to our name-space when ipython interpreter |
+| | starts. And thus we don't have to explicitly import modules. |
+| | |
+| | So now let us try to fix the problem and run the script in command |
+| | line, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, fix ``linspace`` problem }}} | add this line as the first line in the script, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ add the line as first line in four_plot.py and save }}} | |
+| :: | |
+| | |
+| from scipy import * | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Now let us run the script again, |
+| | |
+| python four_plot.py | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | Now it gave another error -- plot not defined, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, thank you slide }}} | let us edit the file again and add this line as the |
+| | second line in our script and save it, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ add the line as second line in four_plot.py and save }}} | |
+| :: | |
+| | |
+| from pylab import * | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Switch to the terminal }}} | And now, run the script, |
+| :: | |
+| | |
+| python four_plot.py | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | Yes! it worked. So what did we do? |
+| | |
+| | We actually imported the required modules using the keyword ``import``. |
+| | It could also be done as by using, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, better way of fixing }}} | from scipy import linspace |
+| {{{ highlight the required line while narrating }}} | |
+| | instead of, |
+| | |
+| | from scipy import * |
+| | |
+| | So in practice it is always good to use function names instead of |
+| | asterisk or star. If we use asterisk to import from a particular |
+| | module then it will replace any existing functions with the same name |
+| | in our name-space. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, Instead of ``*`` }}} | So let us modify four_plot.py as, |
+| | Hence we delete the first two lines of our code which we had added |
+| | and add these lines |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Switch to script 'four_plot.py' }}} | |
+| {{{ delete the first two lines and add the following }}} | |
+| :: | |
+| | |
+| from scipy import linspace, pi, sin | |
+| from pylab import plot, legend, annotate | |
+| from pylab import xlim, ylim, title, show | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Now let us try running the code again as, |
+| | |
+| python four_plot.py | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | It works! In this method we actually imported the functions to the |
+| | current name-space.There is one more way of doing it. And that |
+| | is, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to slide 'another fix' }}} | Notice that we use ``scipy.pi`` instead of just ``pi`` as in the |
+| {{{ highlight the required line while narrating }}} | previous method, and the functions are called as ``pylab.plot()`` and |
+| | ``pylab.annotate()`` and not as ``plot()`` and ``annotate()``. |
+| | |
+| | Pause the video here, try out the following exercise and resume the video. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show slide with exercise 1 }}} | Write a script to plot a sine wave from minus two pi to two pi. |
+| | <Pause> |
+| | It can solved as, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ open sine.py and show it }}} | The first line we import the required functions ``linspace()`` , |
+| | ``sin()`` and constant ``pi`` from the module scipy. The second and |
+| | third line we import the functions ``plot()``, ``legend()``, |
+| | ``show()``, ``title()``, ``xlabel()`` and ``ylabel()``. And the rest |
+| | the code to generate the plot. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Pause for sometime and then continue }}} | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Switch to the terminal }}} | We can run it as, |
+| :: | |
+| | |
+| python sine.py | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | As we can see, we our sine plot.Let us move further in our topic. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, What is a module? }}} | Until now we have been learning about importing modules, now what is a |
+| | module? |
+| | |
+| | A module is simply a file containing Python definitions and |
+| | statements. Definitions from a module can be imported into other |
+| | modules or into the main module. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, Python standard library }}} | Python has a very rich standard library of modules. It is very |
+| | extensive, offering a wide range of facilities. Some of the standard |
+| | modules are, |
+| | |
+| | for Math: math, random |
+| | for Internet access: urllib2, smtplib |
+| | for System, Command line arguments: sys |
+| | for Operating system interface: os |
+| | for regular expressions: re |
+| | for compression: gzip, zipfile, tarfile |
+| | And there are lot more. |
+| | |
+| | Find more information at Python Library reference, |
+| | ``http://docs.python.org/library/`` |
+| | |
+| | There are a lot of other modules like pylab, scipy, Mayavi, etc which |
+| | are not part of the standard python library. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ switch to next slide, summary }}} | This brings us to the end of this tutorial. In this tutorial, we have |
+| | learnt to, |
+| | |
+| | 1. Run scripts from command line, |
+| | #. Import modules by specifying the module name followed by |
+| | an asterisk. |
+| | #. Import only the required functions from modules by specifying |
+| | the function name. |
+| | #. Use python standard library. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{Show self assessment questions slide}}} | Here are some self assessment questions for you to solve |
+| | |
+| | 1. Which among this is correct ? |
+| | |
+| | - from scipy import plot |
+| | - from numpy import plot |
+| | - from matplotlib import plot |
+| | - from pylab import plot |
+| | |
+| | 2. Which among these libraries is part of python standard library ? |
+| | |
+| | - Mayavi |
+| | - scipy |
+| | - matplotlib |
+| | - urllib2 |
+| | |
+| | 3. Functions ``xlim()`` and ``ylim()`` can be imported to the current |
+| | name-space as, |
+| | |
+| | - from pylab import xlim, ylim |
+| | - import pylab |
+| | - from scipy import xlim, ylim |
+| | - import scipy |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{solution of self assessment questions on slide}}} | And the answers, |
+| | |
+| | 1. The option ``from pylab import plot`` is the correct one, since plot |
+| | is a function of module module. |
+| | |
+| | 2. ``urllib2`` is a part of the python standard library. |
+| | |
+| | 3. Functions ``xlim()`` and ``ylim()`` can be imported to the current |
+| | name-space as, ``from pylab import xlim, ylim``. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | Hope you have enjoyed this tutorial and found it useful. |
+| | Thank you! |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+