--- a/day2/session2.tex Tue Nov 10 14:33:06 2009 +0530
+++ b/day2/session2.tex Tue Nov 10 14:33:51 2009 +0530
@@ -51,7 +51,7 @@
\setcounter{time}{0}
\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}
-\newcommand{\typ}[1]{\texttt{#1}}
+\newcommand{\typ}[1]{\lstinline{#1}}
\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}} }
@@ -127,10 +127,10 @@
\subsection{Basic Looping}
\begin{frame}[fragile]
\frametitle{\typ{while}}
-Example: Fibonacci series
+\begin{block}{Example: Fibonacci series}
+ Sum of previous two elements defines the next
+\end{block}
\begin{lstlisting}
-# the sum of two elements
-# defines the next
In []: a, b = 0, 1
In []: while b < 10:
...: print b,
@@ -145,23 +145,24 @@
\frametitle{\typ{range()}}
\kwrd{range([start,] stop[, step])}\\
\begin{itemize}
- \item range() returns a list of integers
- \item The \emph{start} and the \emph{step} arguments are optional
- \item \emph{stop} argument is not included in the list
+ \item \typ{range()} returns a list of integers
+ \item The \typ{start} and the \typ{step} arguments are optional
+ \item \typ{stop} is not included in the list
\end{itemize}
\vspace*{.5in}
-\begin{itemize}
- \item \alert{Anything within \typ{[]} is optional}
+\begin{block}{Documentation convention}
\begin{itemize}
- \item Nothing to do with Python.
+ \item \alert{Anything within \typ{[]} is optional}
+ \begin{itemize}
+ \item Nothing to do with Python.
+ \end{itemize}
\end{itemize}
-\end{itemize}
-
+\end{block}
\end{frame}
\begin{frame}[fragile]
- \frametitle{\typ{for} \ldots \typ{range()}}
-Example: print squares of first \typ{n} numbers
+ \frametitle{\texttt{for} \ldots \typ{range()}}
+Example: print squares of first \typ{5} numbers
\begin{lstlisting}
In []: for i in range(5):
....: print i, i * i
@@ -176,7 +177,7 @@
\end{frame}
\begin{frame}[fragile]
- \frametitle{\typ{for} \ldots \typ{range()}}
+ \frametitle{\texttt{for} \ldots \typ{range()}}
Example: print squares of odd numbers from 3 to 9
\begin{lstlisting}
In []: for i in range(3, 10, 2):
@@ -240,6 +241,9 @@
\begin{lstlisting}
In []: num = [1, 2, 3, 4]
+In []: num + [9, 10, 11]
+Out[]: [1, 2, 3, 4, 9, 10, 11]
+
In []: num.append([9, 10, 11])
In []: num
@@ -325,7 +329,6 @@
In []: t[0] + t[3] + t[-1]
Out[]: 13
-# Try the following!
In []: t[4] = 7
\end{lstlisting}
\pause
@@ -361,8 +364,8 @@
Out[]: 52.530000000000001
\end{lstlisting}
\begin{block}{Note!}
- Duplicate keys are not allowed!\\
- Dictionaries are iterable through keys.
+ Duplicate keys $\Rightarrow$ overwritten!\\
+ You can iterate through a dictionary using keys.
\end{block}
\end{frame}
@@ -375,6 +378,12 @@
In []: 'Econ' in player
Out[]: False
\end{lstlisting}
+ \begin{block}{Note}
+ \begin{itemize}
+ \item We can check for the containership of keys only
+ \item Not values
+ \end{itemize}
+ \end{block}
\end{frame}
\begin{frame}[fragile]
@@ -384,17 +393,18 @@
Out[]: ['Runs', 'Inn', 'Avg', 'Mat']
In []: player.values()
-Out[]: [10823, 233, 52.530000000000001, 134]
+Out[]: [10823, 233,
+ 52.530000000000001, 134]
\end{lstlisting}
\end{frame}
\begin{frame} {Problem Set 2.1: Problem 2.1.1}
-You are given date strings of the form ``29, Jul 2009'', or ``4 January 2008''. In other words a number, a string and another number, with a comma sometimes separating the items.\\Write a function that takes such a string and returns a tuple (yyyy, mm, dd) where all three elements are ints.
+You are given date strings of the form ``29 Jul, 2009'', or ``4 January 2008''. In other words a number, a string and another number, with a comma sometimes separating the items.\\Write a function that takes such a string and returns a tuple (yyyy, mm, dd) where all three elements are ints.
\end{frame}
-\subsection{Set}
+\subsection{Sets}
\begin{frame}[fragile]
- \frametitle{Set}
+ \frametitle{Sets}
\begin{itemize}
\item Simplest container, mutable
\item No ordering, no duplicates
@@ -447,18 +457,14 @@
\end{frame}
\begin{frame}
- \frametitle{Problem set 2.2}
- \begin{description}
- \item[2.2.1] Given a dictionary of the names of students and their marks, identify how many duplicate marks are there? and what are these?
-\end{description}
-\inctime{15}
+ \frametitle{Problem set 2.2: Problem 2.2.1}
+Given a dictionary of the names of students and their marks, identify how many duplicate marks are there? and what are these?
\end{frame}
\begin{frame}
- \frametitle{Problem set 2.2}
- \begin{description}
- \item[2.2.2] Given a list of words, find all the anagrams in the list
-\end{description}
+ \frametitle{Problem 2.2.2}
+Given a list of words, find all the anagrams in the list.
+
\inctime{15}
\end{frame}
@@ -468,7 +474,6 @@
\begin{itemize}
\item \kwrd{def} - keyword to define a function
\item Arguments are local to a function
- \item Docstrings are important!
\item Functions can return multiple values
\end{itemize}
\end{frame}
@@ -487,6 +492,7 @@
else:
return 0
\end{lstlisting}
+ \emphbar{Note docstrings}
\end{frame}
\begin{frame}[fragile]
@@ -517,8 +523,15 @@
\frametitle{What did we learn?}
\begin{itemize}
\item Loops: \kwrd{while}, \kwrd{for}
- \item Advanced Data structures
+ \item Advanced Data structures:
+ \begin{itemize}
+ \item Lists
+ \item Tuples
+ \item Dictionaries
+ \item Sets
+ \end{itemize}
\item Functions
+ \item Docstrings
\end{itemize}
\end{frame}