--- a/day1/session2.tex Fri Nov 06 18:36:42 2009 +0530
+++ b/day1/session2.tex Fri Nov 06 18:40:13 2009 +0530
@@ -123,6 +123,18 @@
% You might wish to add the option [pausesections]
\end{frame}
+%\begin{frame}
+%\frametitle{Python Scripts\ldots}
+% \begin{itemize}
+% \item Open a new file in an \alert{editor}
+% \item Copy and paste from the output of \typ{\%hist -n}
+% \item Save the file as \typ{sine_plot.py}
+% \end{itemize}
+% \begin{itemize}
+% \item run the file in IPython using \typ{\%run -i sine_plot.py}\\
+% \end{itemize}
+%\end{frame}
+
\section{Scripts}
\begin{frame}[fragile]
@@ -197,22 +209,27 @@
\section{Lists}
\begin{frame}[fragile]
- \frametitle{How to create the data?}
-What were \typ{x} and \typ{y}?\\
+ \frametitle{Lists: Introduction}
+ \begin{lstlisting}
+ In []: x = [0, 1, 2, 3]
+
+ In []: y = [7, 11, 15, 19]
+
+ \end{lstlisting}
+What are \typ{x} and \typ{y}?\\
\begin{center}
\alert{\typ{lists!!}}
\end{center}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Lists: Initializing \& accessing elements}
\begin{lstlisting}
In []: mtlist = [] #Empty List
-In []: lst = [ 1, 2, 3, 4, 5]
-\end{lstlisting}
-\end{frame}
+In []: a = [ 1, 2, 3, 4, 5]
-\begin{frame}[fragile]
-\frametitle{Accessing elements of a list}
-\begin{lstlisting}
-In []: lst[0]+lst[1]+lst[-1]
+In []: a[0]+a[1]+a[-1]
Out[]: 8
\end{lstlisting}
\end{frame}
@@ -220,13 +237,13 @@
\begin{frame}[fragile]
\frametitle{List: Slicing}
\begin{block}{Remember\ldots}
- \kwrd{In []: lst = [ 1, 2, 3, 4, 5]}
+ \kwrd{In []: a = [ 1, 2, 3, 4, 5]}
\end{block}
\begin{lstlisting}
-In []: lst[1:3] # A slice.
+In []: a[1:3] # A slice.
Out[]: [2, 3]
-In []: lst[1:-1]
+In []: a[1:-1]
Out[]: [2, 3, 4]
\end{lstlisting}
\alert{\typ{list[initial:final]}}
@@ -236,14 +253,14 @@
\begin{frame}[fragile]
\frametitle{List operations}
\begin{lstlisting}
-In []: a = [ 6, 7, 8, 9]
-In []: b = lst + a
+In []: b = [ 6, 7, 8, 9]
+In []: c = a + b
-In []: b
+In []: c
Out[]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
-In []: lst.append(6)
-In []: lst
+In []: a.append(6)
+In []: a
Out[]: [ 1, 2, 3, 4, 5, 6]
\end{lstlisting}
%\inctime{10}
@@ -252,7 +269,7 @@
\section{Simple Pendulum}
\begin{frame}[fragile]
\frametitle{Simple Pendulum - L and T}
-Let us look at the example of the Simple Pendulum experiment.
+Let us look at the Simple Pendulum experiment.
\begin{center}
\begin{small}
\begin{tabular}{| c | c | c |}
@@ -276,10 +293,10 @@
\begin{frame}[fragile]
\frametitle{Lets use lists}
\begin{lstlisting}
-In []: L = [0.1, 0.2, 0.3, 0.4, 0.5,
+In []: l = [0.1, 0.2, 0.3, 0.4, 0.5,
0.6, 0.7, 0.8, 0.9]
-In []: T = [0.69, 0.8989, 1.1867,
+In []: t = [0.69, 0.8989, 1.1867,
1.2991, 1.4656, 1.5843,
1.7706, 1.8296, 1.9440]
\end{lstlisting}
@@ -288,24 +305,37 @@
\begin{frame}[fragile]
\frametitle{Plotting $L$ vs $T^2$}
\begin{itemize}
-\item We must square each of the values in T
+\item We must square each of the values in \typ{t}
\item How to do it?
-\item We use a \kwrd{for} loop to iterate over T
+\item We use a \kwrd{for} loop to iterate over \typ{t}
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Plotting $L$ vs $T^2$}
\begin{lstlisting}
-In []: TSq = []
+In []: tsq = []
-In []: for t in T:
- ....: TSq.append(t*t)
+In []: for time in t:
+ ....: tsq.append(time*time)
-In []: plot(L, TSq)
+In []: plot(l, tsq)
Out[]: [<matplotlib.lines.Line2D object at 0xa5b05ac>]
\end{lstlisting}
-This gives \kwrd{TSq} which is the list of squares of T values.
+This gives \kwrd{tsq} which is the list of squares of \typ{t} values.
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{How to come out of the \textt{for} loop?}
+ Hit the ``enter'' key twice to come to the previous indentation level
+ \begin{lstlisting}
+ In []: for time in t:
+ ....: tsq.append(time*time)
+ ....:
+ ....:
+
+ In []:
+ \end{lstlisting}
\end{frame}
\begin{frame}[fragile]
@@ -328,6 +358,9 @@
1.5000e-01 8.6789e-01
\end{lstlisting}
\ldots
+\begin{block}{Windows users:}
+ >type pendulum.txt
+\end{block}
\end{frame}
\begin{frame}[fragile]
@@ -340,31 +373,28 @@
\end{frame}
\begin{frame}[fragile]
-\frametitle{Reading \typ{pendulum.txt}}
+\frametitle{Plotting from \typ{pendulum.txt}}
+Open a new script and type the following:
\begin{lstlisting}
-In []: L = []
-In []: T = []
-In []: for line in open('pendulum.txt'):
- .... points = line.split()
- .... L.append(float(points[0]))
- .... T.append(float(points[1]))
+l = []
+t = []
+for line in open('pendulum.txt'):
+ points = line.split()
+ l.append(float(points[0]))
+ t.append(float(points[1]))
+tsq = []
+for time in t:
+ tsq.append(time*time)
+plot(l, tsq, '.')
\end{lstlisting}
-\begin{itemize}
-\item We now have two lists L and T
-\item Now, repeat previous steps for plotting
-\end{itemize}
\end{frame}
-\begin{frame}[fragile]
-\frametitle{Plotting from \typ{pendulum.txt}}
-\begin{lstlisting}
-In []: TSq = []
-
-In []: for t in T:
- ....: TSq.append(t*t)
-
-In []: plot(L, TSq, '.')
-\end{lstlisting}
+\begin{frame}
+\frametitle{Save and run}
+\begin{itemize}
+ \item Save as pendulum\_plot.py.
+ \item Run using \kwrd{\%run -i pendulum\_plot.py}
+\end{itemize}
\end{frame}
\begin{frame}[fragile]
@@ -375,7 +405,7 @@
\begin{frame}[fragile]
\frametitle{Reading files \ldots}
-\typ{In []: for line in open('pendulum.txt'):}
+\typ{for line in open('pendulum.txt'):}
\begin{itemize}
\item opening file `\typ{pendulum.txt}'
\item reading the file line by line
@@ -429,23 +459,18 @@
\begin{frame}[fragile]
\frametitle{Let's review the code}
-\begin{small}
\begin{lstlisting}
-In []: L = []
-In []: T = []
-In []: for line in open('pendulum.txt'):
- .... points = line.split()
- .... L.append(float(points[0]))
- .... T.append(float(points[1]))
-
-In []: TSq = []
-
-In []: for t in T:
- ....: TSq.append(t*t)
-
-In []: plot(L, TSq, '.')
+l = []
+t = []
+for line in open('pendulum.txt'):
+ points = line.split()
+ l.append(float(points[0]))
+ t.append(float(points[1]))
+tsq = []
+for time in t:
+ tsq.append(time*time)
+plot(l, tsq, '.')
\end{lstlisting}
-\end{small}
\end{frame}
\begin{frame}[fragile]