# HG changeset patch # User Anoop Jacob Thomas # Date 1288248407 -19800 # Node ID 2ca9b21ed8f9584d15274259d0dcc6d657dc2930 # Parent 894591150f7bb6dc2e6188680820c42aeaef5740 reviewed advanced features of functions script. diff -r 894591150f7b -r 2ca9b21ed8f9 advanced-features-functions/script.rst --- a/advanced-features-functions/script.rst Wed Oct 27 19:25:45 2010 +0530 +++ b/advanced-features-functions/script.rst Thu Oct 28 12:16:47 2010 +0530 @@ -17,7 +17,7 @@ .. #. getting started with functions .. Author : Puneeth - Internal Reviewer : + Internal Reviewer : Anoop Jacob Thomas External Reviewer : Checklist OK? : [2010-10-05] @@ -57,7 +57,15 @@ that the first one is equivalent to call with the second argument being 0. 0 is the default value of the argument. +.. #[[Anoop: It will be good if we show ``round??`` and tell them the + optional argument ndigits, or it could be given as an + exercise(solved) asking them to find the name of the argument in + the function round]] + {{{ show a slide with examples of functions showing default values }}} + +.. #[[Anoop: I think the slide is not there]] + :: s.strip() # strips on spaces. @@ -101,12 +109,17 @@ Following is an (are) exercise(s) that you must do. +{{{ switch to next slide, containing problem statement of + question 1 }}} + %%1%% Redefine the function ``welcome``, by interchanging it's arguments. Place the ``name`` argument with it's default value of "World" before the ``greet`` argument. Please, pause the video here. Do the exercise and then continue. +{{{ switch to next slide, containing the solution to problem 1 }}} + :: def welcome(name="World", greet): @@ -116,25 +129,37 @@ default argument``. When defining a function all the argument with default values should come at the end. +.. #[[Anoop: In the slide, "when defining a function all the default + arguments must be defined at the end" has to be emphasized"]] + Following is an exercise that you must do. +{{{ switch to next slide, containing the problem statement of + question 2 }}} + %%2%% See the definition of linspace using ``?`` and observe how all the arguments with default values are towards the end. Please, pause the video here. Do the exercise and then continue. +{{{ switch to next slide, containing solution to problem 2 }}} + :: linspace? Following is an exercise that you must do. +{{{ switch to next slide, problem statement }}} + %%3%% Redefine the function ``welcome`` with a default value of "Hello" to the ``greet`` argument. Then, call the function without any arguments. Please, pause the video here. Do the exercise and then continue. +{{{ switch to next slide, solution }}} + :: def welcome(greet="Hello", name="World"): @@ -147,6 +172,9 @@ Let us now learn what keyword arguments are. {{{ show a slide with examples using keyword arguments. }}} + +.. #[[Anoop: slide is missing]] + :: legend(['sin(2y)'], loc = 'center') @@ -157,6 +185,14 @@ pie(science.values(), labels = science.keys()) +.. #[[Anoop: I think it will better to introduce keyword arguments as + keyword/named arguments, as the keyword term was quite confusing + for me, so can be for someone who already know certain + jargon's/concepts, also it would be good to tell them that these + are different from keywords in programming languages, explicit is + better than implicit, and probably you could also tell them that + from now on we will refer to it as just keyword arguments]] + When you are calling functions in Python, you don't need to remember the order in which to pass the arguments. Instead, you can use the name of the argument to pass it a value. This slide shows a few @@ -199,6 +235,8 @@ {{{ switch to a slide showing variety of functions with uses }}} +.. #[[Anoop: slide missing]] + Before defining a function of your own, make sure that you check the standard library, for a similar function. Python is popularly called a "Batteries included" language, for the huge library that comes along @@ -214,6 +252,8 @@ {{{ switch to slide showing classes of functions in pylab, scipy }}} +.. #[[Anoop: slide missing]] + Apart from the standard library there are other libraries like ``pylab``, ``scipy``, etc which have a huge collection of functions for scientific purposes. @@ -227,6 +267,9 @@ {{{ Show summary slide }}} +.. #[[Anoop: add range of functions available in python standard + library]] + That brings us to the end of this tutorial. In this tutorial we have learnt how to use functions with default values and keyword arguments. We also looked at the range of functions available in the diff -r 894591150f7b -r 2ca9b21ed8f9 advanced-features-functions/slides.tex --- a/advanced-features-functions/slides.tex Wed Oct 27 19:25:45 2010 +0530 +++ b/advanced-features-functions/slides.tex Thu Oct 28 12:16:47 2010 +0530 @@ -1,4 +1,4 @@ -% Created 2010-10-11 Mon 00:34 +% Created 2010-10-28 Thu 11:37 \documentclass[presentation]{beamer} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} @@ -8,6 +8,7 @@ \usepackage{float} \usepackage{wrapfig} \usepackage{soul} +\usepackage{t1enc} \usepackage{textcomp} \usepackage{marvosym} \usepackage{wasysym} @@ -62,11 +63,10 @@ \frametitle{Solution 1} \label{sec-3} -\lstset{language=Python} -\begin{lstlisting} +\begin{verbatim} def welcome(name="World", greet): print greet, name -\end{lstlisting} +\end{verbatim} We get an error that reads \texttt{SyntaxError: non-default argument follows default argument}. When defining a function all the argument with default values should come at the end. \end{frame} @@ -81,10 +81,9 @@ \frametitle{Solution 2} \label{sec-5} -\lstset{language=Python} -\begin{lstlisting} +\begin{verbatim} linspace? -\end{lstlisting} +\end{verbatim} \end{frame} \begin{frame} \frametitle{Question 3} @@ -98,13 +97,12 @@ \frametitle{Solution 3} \label{sec-7} -\lstset{language=Python} -\begin{lstlisting} +\begin{verbatim} def welcome(greet="Hello", name="World"): print greet, name welcome() -\end{lstlisting} +\end{verbatim} \end{frame} \begin{frame} \frametitle{Summary} diff -r 894591150f7b -r 2ca9b21ed8f9 manipulating-strings/slides.tex --- a/manipulating-strings/slides.tex Wed Oct 27 19:25:45 2010 +0530 +++ b/manipulating-strings/slides.tex Thu Oct 28 12:16:47 2010 +0530 @@ -1,4 +1,4 @@ -% Created 2010-10-11 Mon 11:27 +% Created 2010-10-28 Thu 11:35 \documentclass[presentation]{beamer} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} @@ -8,6 +8,7 @@ \usepackage{float} \usepackage{wrapfig} \usepackage{soul} +\usepackage{t1enc} \usepackage{textcomp} \usepackage{marvosym} \usepackage{wasysym} @@ -63,10 +64,9 @@ \frametitle{Solution 1} \label{sec-3} -\lstset{language=Python} -\begin{lstlisting} +\begin{verbatim} In []: s[1:-1] -\end{lstlisting} +\end{verbatim} \end{frame} \begin{frame} \frametitle{Question 2} @@ -80,11 +80,10 @@ \frametitle{Solution 2} \label{sec-5} -\lstset{language=Python} -\begin{lstlisting} +\begin{verbatim} In []: s in week In []: s.lower()[:3] in week -\end{lstlisting} +\end{verbatim} \end{frame} \begin{frame} \frametitle{Question 3} @@ -98,11 +97,10 @@ \frametitle{Solution 3} \label{sec-7} -\lstset{language=Python} -\begin{lstlisting} +\begin{verbatim} email.replace('[dot], '.') print email -\end{lstlisting} +\end{verbatim} \end{frame} \begin{frame} \frametitle{Question 4} @@ -115,10 +113,9 @@ \frametitle{Solution 4} \label{sec-9} -\lstset{language=Python} -\begin{lstlisting} +\begin{verbatim} email_str = email_str.replace(",", ";") -\end{lstlisting} +\end{verbatim} \end{frame} \begin{frame} \frametitle{Summary} diff -r 894591150f7b -r 2ca9b21ed8f9 progress.org --- a/progress.org Wed Oct 27 19:25:45 2010 +0530 +++ b/progress.org Thu Oct 28 12:16:47 2010 +0530 @@ -40,14 +40,14 @@ | 6.5 LO: | Assessment | 3 | Anoop | | | |---------+----------------------------------------+-------+----------+---------------------------------------+-----------| | 7.1 LO: | manipulating lists | 3 | Madhu | | | -| 7.2 LO: | manipulating strings | 2 | Punch | Anoop(Pending) | | +| 7.2 LO: | manipulating strings | 2 | Punch | Amit(Done) | | | 7.3 LO: | getting started with tuples | 2 | Nishanth | | | | 7.4 LO: | dictionaries | 2 | Anoop | Punch (Done) | | | 7.5 LO: | sets | 2 | Nishanth | | | | 7.6 LO: | Assessment | 3 | Amit | | | |---------+----------------------------------------+-------+----------+---------------------------------------+-----------| | 8.1 LO: | getting started with functions | 3 | Nishanth | | | -| 8.2 LO: | advanced features of functions | 3 | Punch | Anoop(Pending) | | +| 8.2 LO: | advanced features of functions | 3 | Punch | Anoop(Done) | | | 8.3 LO: | using python modules | 3 | Anoop | Punch (Done) | | | 8.4 LO: | writing python scripts | 2 | Nishanth | | | | 8.5 LO: | testing and debugging | 2 | Amit | | |