diff options
author | Puneeth Chaganti | 2010-12-01 16:51:35 +0530 |
---|---|---|
committer | Puneeth Chaganti | 2010-12-01 16:51:35 +0530 |
commit | f3a34dfb4e879f3eb7274704f44546aac4add88f (patch) | |
tree | 1cb0a8cc5dbd5ee2b374350915ed2addfa0fb447 /advanced-features-functions | |
parent | 347866ed0d29db61ee062563b1e1616cfb85588c (diff) | |
download | st-scripts-f3a34dfb4e879f3eb7274704f44546aac4add88f.tar.gz st-scripts-f3a34dfb4e879f3eb7274704f44546aac4add88f.tar.bz2 st-scripts-f3a34dfb4e879f3eb7274704f44546aac4add88f.zip |
Renamed all LOs to match with their names in progress.org.
Diffstat (limited to 'advanced-features-functions')
-rw-r--r-- | advanced-features-functions/quickref.tex | 8 | ||||
-rw-r--r-- | advanced-features-functions/script.rst | 277 | ||||
-rw-r--r-- | advanced-features-functions/slides.org | 86 | ||||
-rw-r--r-- | advanced-features-functions/slides.tex | 134 |
4 files changed, 0 insertions, 505 deletions
diff --git a/advanced-features-functions/quickref.tex b/advanced-features-functions/quickref.tex deleted file mode 100644 index 160370e..0000000 --- a/advanced-features-functions/quickref.tex +++ /dev/null @@ -1,8 +0,0 @@ -\textbf{Advanced features of functions} - -Arguments of functions can have default arguments. - -All arguments with default arguments are at the end of the definition. - -Functions can be called with keyword arguments. All the keyword -arguments should be at the end of the argument list. diff --git a/advanced-features-functions/script.rst b/advanced-features-functions/script.rst deleted file mode 100644 index a420721..0000000 --- a/advanced-features-functions/script.rst +++ /dev/null @@ -1,277 +0,0 @@ -.. Objectives -.. ---------- - -.. At the end of this tutorial, you will be able to - -.. 1. Assign default values to arguments, when defining functions -.. 2. Define and call functions with keyword arguments. -.. 3. Also, you will get a glimpse of the plethora of functions -.. available, in Python standard library and the scientific computing -.. libraries. - - -.. Prerequisites -.. ------------- - -.. 1. getting started with ipython -.. #. getting started with functions - -.. Author : Puneeth - Internal Reviewer : Anoop Jacob Thomas<anoop@fossee.in> - External Reviewer : - Language Reviewer : Bhanukiran - Checklist OK? : <put date stamp here, if OK> [2010-10-05] - -Script ------- - -{{{ Show the slide containing title }}} - -Welcome to the tutorial on advanced feature of functions. - -{{{ Show the outline slide }}} - -In this tutorial we shall be looking at specifying default arguments -to functions when defining them and calling functions using keyword -arguments. We shall also, look at some of the built-in functions -available in the standard library of Python and the scientific -computing libraries. - -{{{ switch to terminal }}} - -We have an ``ipython`` terminal open, which we shall be using through -out this session. - -Let's use the ``round`` function as an example to understand what a -default value of an argument means. Let's type the following -expressions in the terminal. - -:: - - round(2.484) - - round(2.484, 2) - -Both the first expression and the second are calls to the ``round`` -function, but the first calls it with only one argument and the second -calls it with two arguments. By observing the output, we can guess -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. - s.strip('@') # strips the string of '@' symbols. - - plot(x, y) # plots with x vs. y using default line style. - plot(x, y, 'o') # plots x vs. y with circle markers. - - linspace(0, 2*pi, 100) # returns 100 points between 0 and 2pi - linspace(0, 2*pi) # returns 50 points between 0 and 2pi - -.. #[punch: all above content goes on to a slide] - -{{{ switch back to ipython }}} - -Let's now define a simple function that uses default arguments. We -define a simple function that prints a welcome message to a person, -given a greeting and his/her name. - -:: - - def welcome(greet, name="World"): - print greet, name - -Let us first call the function with two arguments, one for ``greet`` -and other for ``name``. - -:: - - welcome("Hi", "Guido") - -We get the expected welcome message, "Hi Guido". - -Now let us call the function with just one argument "Hello". -:: - - welcome("Hello") - -"Hello" is treated as the ``greet`` and we get "Hello World" as -the output. "World" is the default value for the argument ``name``. - -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): - print greet, name - -We get an error that reads ``SyntaxError: non-default argument follows -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"): - print greet, name - - - welcome() - - -Let us now learn what keyword arguments or named arguments are. We -shall refer to them as keyword arguments, henceforth. - -{{{ show a slide with examples using keyword arguments. }}} - -.. #[[Anoop: slide is missing]] - -:: - - legend(['sin(2y)'], loc = 'center') - - plot(y, sin(y), 'g', linewidth = 2) - - annotate('local max', xy = (1.5, 1)) - - pie(science.values(), labels = science.keys()) - -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 -function calls that use keyword arguments. ``loc``, ``linewidth``, -``xy`` and ``labels`` are being called with keyword arguments. - -{{{ switch to ipython terminal }}} - -Let us try and understand this better using the ``welcome`` function -that we have been using all along. Let us call it in different ways -and observe the output to see how keyword arguments work. - -:: - - welcome() - - welcome("Hello", "James") - - welcome("Hi", name="Guido") - -When no keyword is specified, the arguments are allotted based on -their position. So, "Hi" is the value of the argument ``greet`` and -name is passed the value "Guido". -:: - - welcome(name="Guido", greet="Hey! ") - -When keyword arguments are used, the arguments can be called in any -order. - -:: - - welcome(name="Guido", "Hey") - -This call returns an error that reads, ``non keyword arg after keyword -arg``. Python expects all the keyword to be present towards the end. - -That brings us to the end of what we wanted to learn about ``keyword`` -arguments. - -{{{ 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 -with it. - -:: - - Math functions - abs, sin, .... - -.. #[punch: Need to decide, exactly what to put here. Reviewer comments -.. welcome.] - -{{{ 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. -:: - - pylab - plot, bar, contour, boxplot, errorbar, log, polar, quiver, semilog - - scipy (modules) - fftpack, stats, linalg, ndimage, signal, optimize, integrate - -{{{ 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 -Python standard library and the Scientific Computing related -packages. - -{{{ Show the "sponsored by FOSSEE" slide }}} - -This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India - -Hope you have enjoyed and found it useful. -Thank you! diff --git a/advanced-features-functions/slides.org b/advanced-features-functions/slides.org deleted file mode 100644 index fb66b6f..0000000 --- a/advanced-features-functions/slides.org +++ /dev/null @@ -1,86 +0,0 @@ -#+LaTeX_CLASS: beamer -#+LaTeX_CLASS_OPTIONS: [presentation] -#+BEAMER_FRAME_LEVEL: 1 - -#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} -#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra) -#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC - -#+LaTeX_CLASS: beamer -#+LaTeX_CLASS_OPTIONS: [presentation] - -#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl} -#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet} - -#+LaTeX_HEADER: \usepackage{listings} - -#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries, -#+LaTeX_HEADER: commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen}, -#+LaTeX_HEADER: showstringspaces=false, keywordstyle=\color{blue}\bfseries} - -#+TITLE: Advanced features of functions -#+AUTHOR: FOSSEE -#+EMAIL: -#+DATE: - -#+DESCRIPTION: -#+KEYWORDS: -#+LANGUAGE: en -#+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t -#+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc - -* Outline - - Assigning default values to arguments - - Calling functions using Keyword arguments - - functions in standard library -* Question 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. -* Solution 1 - #+begin_src python - def welcome(name="World", greet): - print greet, name - #+end_src - We get an error that reads ~SyntaxError: non-default argument - follows default argument~. When defining a function all the - argument with default values should come at the end. - -* Question 2 - See the definition of linspace using ~?~ and observe how all the - arguments with default values are towards the end. -* Solution 2 - #+begin_src python - linspace? - #+end_src -* Question 3 - Redefine the function ~welcome~ with a default value of - "Hello" to the ~greet~ argument. Then, call the function without any - arguments. -* Solution 3 - #+begin_src python - def welcome(greet="Hello", name="World"): - print greet, name - - welcome() - #+end_src -* Summary - You should now be able to -- - + define functions with default arguments - + call functions using keyword arguments -* Thank you! -#+begin_latex - \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_latex - - diff --git a/advanced-features-functions/slides.tex b/advanced-features-functions/slides.tex deleted file mode 100644 index 9e1d66f..0000000 --- a/advanced-features-functions/slides.tex +++ /dev/null @@ -1,134 +0,0 @@ -% Created 2010-10-28 Thu 11:37 -\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{Advanced features of functions} -\author{FOSSEE} -\date{} - -\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} -\begin{document} - -\maketitle - - - - - - - - - -\begin{frame} -\frametitle{Outline} -\label{sec-1} - -\begin{itemize} -\item Assigning default values to arguments -\item Calling functions using Keyword arguments -\item functions in standard library -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Question 1} -\label{sec-2} - - Redefine the function \texttt{welcome}, by interchanging it's - arguments. Place the \texttt{name} argument with it's default value of - ``World'' before the \texttt{greet} argument. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 1} -\label{sec-3} - -\begin{verbatim} -def welcome(name="World", greet): - print greet, name -\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} -\begin{frame} -\frametitle{Question 2} -\label{sec-4} - - See the definition of linspace using \texttt{?} and observe how all the - arguments with default values are towards the end. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 2} -\label{sec-5} - -\begin{verbatim} -linspace? -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Question 3} -\label{sec-6} - - Redefine the function \texttt{welcome} with a default value of - ``Hello'' to the \texttt{greet} argument. Then, call the function without any - arguments. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 3} -\label{sec-7} - -\begin{verbatim} -def welcome(greet="Hello", name="World"): - print greet, name - -welcome() -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Summary} -\label{sec-8} - - You should now be able to -- -\begin{itemize} -\item define functions with default arguments -\item call functions using keyword arguments -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Thank you!} -\label{sec-9} - - \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} |