#+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: #+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 * #+begin_latex \begin{center} \vspace{12pt} \textcolor{blue}{\huge Advanced features of Functions} \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_latex * Objectives At the end of this tutorial, you will be able to, - Assign default values to arguments, when defining functions. - Define and call functions with keyword arguments. - Learn some of the built-in functions available in Python standard library and the scientific computing libraries. * Pre-requisite Spoken tutorial on - - Getting started with functions * Functions #+begin_src Python 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 #+end_src * Exercise 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. * Exercise 2 - See the definition of linspace using ~?~ and make a note of all the arguments with default values are towards the end. * Exercise 3 - Redefine the function ~welcome~ with a default value of "Hello" to the ~greet~ argument. Then, call the function without any arguments. * Keyword arguments examples #+begin_src Python 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()) #+end_src * Built-in functions #+begin_src Python Math functions - abs, sin, .... Plot functions - plot, bar, pie ... Boolean functions - and, or, not ... #+end_src * Classes of functions #+begin_src Python - pylab - plot, bar, contour, boxplot, errorbar, log, polar, quiver, semilog - scipy (modules) - fftpack, stats, linalg, ndimage, signal, optimize, integrate #+end_src * Summary In this tutorial, we have learnt to, - Define functions with default arguments. - Call functions using keyword arguments. - Use the range of functions available in the Python standard library and the Scientific Computing related packages. * Evaluation 1. All arguments of a function cannot have default values. - True or False? 2. The following is a valid function definition. True or False? #+begin_src Python def seperator(count=40, char, show=False): if show: print char * count return char * count #+end_src 3. When calling a function, - the arguments should always be in the order in which they are defined. - only keyword arguments can be in any order, but should be called at the beginning. - only keyword arguments can be in any order, but should be called at the end. * Solutions 1. False 2. False 3. only keyword arguments can be in any order, but should be called at the end * #+begin_latex \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_latex