% Created 2011-05-24 Tue 11:11
\documentclass[presentation]{beamer}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fixltx2e}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{soul}
\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{}
\author{FOSSEE}
\date{}

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











\begin{frame}

\begin{center}
\vspace{12pt}
\textcolor{blue}{\huge Getting started with \texttt{for}}
\end{center}
\vspace{18pt}
\begin{center}
\vspace{10pt}
\includegraphics[scale=0.95]{../images/fossee-logo.png}\\
\vspace{5pt}
\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ 
\scriptsize Funded by National Mission on Education through ICT\\
\scriptsize  MHRD,Govt. of India\\
\includegraphics[scale=0.30]{../images/iitb-logo.png}\\
\end{center}
\end{frame}
\begin{frame}
\frametitle{Objectives}
\label{sec-2}

  At the end of this tutorial, you will be able to, 

\begin{itemize}
\item Write blocks of code in python.
\item Use the ``for`` loop.
\item Use ``range()`` function.
\item Write blocks in python interpreter
\item Write blocks in ipython interpreter.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pre-requisite}
\label{sec-3}

  Spoken tutorial on-

\begin{itemize}
\item Getting started with Lists
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Whitespace in Python}
\label{sec-4}


\begin{itemize}
\item Whitespace is significant
\begin{itemize}
\item blocks are visually separated
\end{itemize}
\item Blocks are indented using 4 spaces
\begin{verbatim}
     Block A
     Block A
         Block B
         Block B
     Block A
\end{verbatim}

    \verb~Block B~ is an inner block and is indented using 4 spaces
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Exercise 1}
\label{sec-5}

  Write a \verb~for~ loop which iterates through a list of numbers and find
  the square root of each number.
\begin{verbatim}
   
\end{verbatim}

  The numbers are,
\begin{verbatim}
   1369, 7225, 3364, 7056, 5625, 729, 7056, 
   576, 2916
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{Solution 1}
\label{sec-6}


\begin{itemize}
\item Open text editor and type the following code
\lstset{language=Python}
\begin{lstlisting}
numbers = [1369, 7225, 3364, 7056, 5625, 729, 7056, 
           576, 2916]

for each in numbers:
    print "Square root of", each, "is", sqrt(each)

print "This is not in for loop!"
\end{lstlisting}
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Save \& run script}
\label{sec-7}


\begin{itemize}
\item Save the script as \verb~list_roots.py~
\item Run in \verb~ipython~ interpreter as,
\begin{verbatim}
     In []: %run -i list_roots.py
\end{verbatim}

\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Exercise 2}
\label{sec-8}

  Print the square root of numbers in the list.
\begin{verbatim}
   
\end{verbatim}

  Numbers are,
\begin{verbatim}
   7225, 3268, 3364, 2966, 7056, 5625, 729, 5547, 
   7056, 576, 2916
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{Exercise 3}
\label{sec-9}

  Find out the cube of all the numbers from 1 to 10.
\begin{verbatim}
   
\end{verbatim}

  \emph{do it in the python interpreter}
\end{frame}
\begin{frame}
\frametitle{\verb~range()~ function}
\label{sec-10}


\begin{itemize}
\item in built function in Python
\item generates a list of integers
\begin{itemize}
\item \emph{syntax:} range([start,] stop[, step])
\item \emph{example:}
\begin{itemize}
\item range(1, 20) - \emph{generates integers from 1 to 20}
\item range(20) - \emph{generates integers from 0 to 20}
\end{itemize}
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Exercise 4}
\label{sec-11}

  Print all the odd numbers from 1 to 50.
\end{frame}
\begin{frame}
\frametitle{Summary}
\label{sec-12}

  In this tutorial,we learnt to,

\begin{itemize}
\item Create blocks in python using ``for
\item Indent the blocks of code
\item Iterate over a list using ``for`` loop
\item Use the ``range()`` function
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Evaluation}
\label{sec-13}


\begin{enumerate}
\item Indentation is not mandatory in Python
\begin{itemize}
\item True
\item False
\end{itemize}
\vspace{8pt}
\item Write a code using ``for`` loop to print the product of all natural numbers from 1 to 20.
\vspace{8pt}
\item What will be the output of-
     range(1,5)
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Solutions}
\label{sec-14}


\begin{enumerate}
\item False
\vspace{8pt}
\item y = 1\\
for x in range(1,21):\\
\hspace{12pt}
          y*=x\\
    print y 
\vspace{8pt}      
\item {[1,2,3,4]}
\end{enumerate}
\end{frame}
\begin{frame}

  \begin{block}{}
  \begin{center}
  \textcolor{blue}{\Large THANK YOU!} 
  \end{center}
  \end{block}
\begin{block}{}
  \begin{center}
    For more Information, visit our website\\
    \url{http://fossee.in/}
  \end{center}  
  \end{block}
\end{frame}

\end{document}