% 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}