% Created 2010-10-12 Tue 17:12
\documentclass[presentation]{beamer}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fixltx2e}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{soul}
\usepackage{t1enc}
\usepackage{textcomp}
\usepackage{marvosym}
\usepackage{wasysym}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{hyperref}
\tolerance=1000
\usepackage[english]{babel} \usepackage{ae,aecompl}
\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
\usepackage{listings}
\lstset{language=Python, basicstyle=\ttfamily\bfseries,
commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
showstringspaces=false, keywordstyle=\color{blue}\bfseries}
\providecommand{\alert}[1]{\textbf{#1}}

\title{Using python modules}
\author{FOSSEE}
\date{}

\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
\begin{document}

\maketitle









\begin{frame}
\frametitle{Outline}
\label{sec-1}

\begin{itemize}
\item Running python scripts from command line
\item Importing python modules
\item Importing scipy \& pylab modules
\item About python standard library.
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Running Python script from command line}
\label{sec-2}

\begin{itemize}
\item Create a script, open text editor and type the following
\begin{verbatim}
     print "hello world!"
     print
\end{verbatim}

\item Save the script as \texttt{hello.py}
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Running Python script from command line (cont'd)}
\label{sec-3}

\begin{itemize}
\item Run the script
\begin{verbatim}
     $ python hello.py
\end{verbatim}

\end{itemize}

  \emph{Syntax :} \textbf{python filename}
\end{frame}
\begin{frame}
\frametitle{Four plot problem}
\label{sec-4}

    \begin{center}
      \includegraphics[scale=0.4]{four_plot}    
    \end{center}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fix \texttt{linspace()} problem}
\label{sec-5}

\begin{verbatim}
   from scipy import *
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fix \texttt{plot()} problem}
\label{sec-6}

\begin{verbatim}
   from pylab import *
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{Better way of fixing}
\label{sec-7}

\begin{verbatim}
   from scipy import linspace
\end{verbatim}

  instead of
\begin{verbatim}
   from scipy import *
\end{verbatim}

    \texttt{*} means import all functions from name-space \texttt{scipy}.
\end{frame}
\begin{frame}[fragile]
\frametitle{Instead of \texttt{*}}
\label{sec-8}

\begin{verbatim}
    from scipy import linspace, pi, sin
    from pylab import plot, legend, annotate
    from pylab import xlim, ylim, title, show
\end{verbatim}

  Is better than, \texttt{from scipy import *} \& \texttt{from pylab import *}.
\end{frame}
\begin{frame}[fragile]
\frametitle{Another Fix}
\label{sec-9}

\begin{verbatim}
import scipy
import pylab
x = scipy.linspace(-5*scipy.pi, 5*scipy.pi, 500)
pylab.plot(x, x, 'b')
pylab.plot(x, -x, 'b')
pylab.plot(x, scipy.sin(x), 'g', linewidth=2)
pylab.plot(x, x*scipy.sin(x), 'r', linewidth=3)
pylab.legend(['x', '-x', 'sin(x)', 'xsin(x)'])
pylab.annotate('origin', xy = (0, 0))
pylab.xlim(-5*scipy.pi, 5*scipy.pi)
pylab.ylim(-5*scipy.pi, 5*scipy.pi)
\end{verbatim}
\end{frame}
\begin{frame}
\frametitle{Exercise 1}
\label{sec-10}

  Write a python script to plot a sine wave from 
    $-2\Pi$
  to 
    $2\Pi$
  .
\end{frame}
\begin{frame}
\frametitle{What is a module?}
\label{sec-11}

  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.
\end{frame}
\begin{frame}
\frametitle{Python standard library}
\label{sec-12}

  Python has a very rich standard library of modules.
\begin{itemize}
\item Few libraries

\begin{itemize}
\item Math: \texttt{math}, \texttt{random}
\item Internet access: \texttt{urllib2}, \texttt{smtplib}
\item System, Command line arguments: \texttt{sys}
\item Operating system interface: \texttt{os}
\item regular expressions: \texttt{re}
\item compression: \texttt{gzip}, \texttt{zipfile}, \texttt{tarfile}
\end{itemize}

\item More information

\begin{itemize}
\item \href{http://docs.python.org/library}{http://docs.python.org/library}
\end{itemize}

\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Summary}
\label{sec-13}

\begin{itemize}
\item Running scripts from command line
\item Learned about modules

\begin{itemize}
\item importing modules
\end{itemize}

\item Python standard library
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Thank you!}
\label{sec-14}

  \begin{block}{}
  \begin{center}
  This spoken tutorial has been produced by the
  \textcolor{blue}{FOSSEE} team, which is funded by the 
  \end{center}
  \begin{center}
    \textcolor{blue}{National Mission on Education through \\
      Information \& Communication Technology \\ 
      MHRD, Govt. of India}.
  \end{center}  
  \end{block}
\end{frame}

\end{document}
