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 /getting-started-with-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 'getting-started-with-functions')
-rw-r--r-- | getting-started-with-functions/quickref.tex | 4 | ||||
-rw-r--r-- | getting-started-with-functions/script.rst | 293 | ||||
-rw-r--r-- | getting-started-with-functions/slides.org | 211 | ||||
-rw-r--r-- | getting-started-with-functions/slides.tex | 318 |
4 files changed, 0 insertions, 826 deletions
diff --git a/getting-started-with-functions/quickref.tex b/getting-started-with-functions/quickref.tex deleted file mode 100644 index a4f5a33..0000000 --- a/getting-started-with-functions/quickref.tex +++ /dev/null @@ -1,4 +0,0 @@ -Defining a function:\\ -{\ex \lstinline| def name([arguments]):|} -{\ex \lstinline| code|} -{\ex \lstinline| [return values]|} diff --git a/getting-started-with-functions/script.rst b/getting-started-with-functions/script.rst deleted file mode 100644 index 26e5b79..0000000 --- a/getting-started-with-functions/script.rst +++ /dev/null @@ -1,293 +0,0 @@ -.. Objectives -.. ---------- - -.. 8.1 LO: getting started with functions (3) - -.. At the end of this tutorial, you will be able to - -.. 1. define function -.. #. define functions with arguments -.. #. learn about docstrings -.. #. learn about return values -.. can return multiple values -.. #. read code - - -.. Prerequisites -.. ------------- - -.. 1. should have ``ipython`` installed. -.. #. getting started with ``ipython``. - - -.. Author : Anoop Jacob Thomas <anoop@fossee.in> - Internal Reviewer : - External Reviewer : - Language Reviewer : Bhanukiran - Checklist OK? : <put date stamp here, not OK> [2010-10-05] - - -============================== -Getting started with functions -============================== - -{{{ show welcome slide }}} - -Hello and welcome to the tutorial getting started with functions. - -{{{ switch to next slide, outline slide }}} - -In this tutorial we will learn about functions in python, how to -define functions, arguments to functions, docstrings, and function -return value. - -{{{ switch to next slide, Function }}} - -While writing code, we always want to reduce the number of lines of -code and functions is a way of reusing the code. Thus the same lines -of code can be used as many times as needed. A function is a portion of code -within a larger program that performs a specific task and is -relatively independent of the remaining code. Now let us get more -familiar with functions, - -{{{ switch to next slide, f(x) a mathematical function }}} - -Consider a mathematical function f(x) = x square. Here x is a variable -and with different values of x the value of function will change. When -x is one f(1) will return the value 1 and f(2) will return us the -value 4. Let us now see how to define the function f(x) in python. - -{{{ switch to next slide, define f(x) in Python }}} - -In your Ipython interpreter type the following, -:: - - def f(x): - return x*x - -Well that defined the function, so before learning what we did let us -see if it returns the expected values, try, -:: - - f(1) - f(2) - -Yes, it returned 1 and 4 respectively. And now let us see what we did. -We wrote two lines: The first line ``def f(x)`` is used to define the -name and the parameters to the function and the second line is used to -fix what the function is supposed to return. ``def`` is a keyword and -``f`` is the name of the function and ``x`` the parameter of the -function. - -{{{ switch to next slide, problem statement 1 }}} - -%% 1 %% Write a python function named cube which computes the cube of - a given number n. - -Pause here and try to solve the problem yourself. - -{{{ switch to next slide, solution }}} - -The problem can be solved as, -:: - - def cube(n): - return n**3 - -And now let us see how to write functions without arguments. - -{{{ switch to next slide, greet function }}} - -let us define a new function called ``greet`` which will print ``Hello -World``. -:: - - def greet(): - print "Hello World!" - -now try calling the function, -:: - - greet() - -Well that is a function which takes no arguments. Also note that it is -not mandatory for a function to return values. The function ``greet`` -neither takes any argument nor returns any value. - -Now let us see how to write functions with more than one argument. - -{{{ switch to next slide, exercise 2 }}} - -%% 2 %% Write a python function named ``avg`` which computes the - average of ``a`` and ``b``. - -Pause here and try to solve the problem yourself. - -{{{ switch to next slide, solution 2 }}} - -The problem can be solved as, -:: - - def avg(a,b): - return (a + b)/2 - -Thus if we want a function to accept more arguments, we just list them -separated with a comma between the parenthesis after the function's name -in the ``def`` line. - -{{{ switch to next slide, docstring }}} - -It is always a good practice to document the code that we write, and -for a function we define we should write an abstract of what the -function does, and that is called a docstring. Let us modify the -function ``avg`` and add docstring to it. Do the following, -:: - - def avg(a,b): - """ avg takes two numbers as input (a & b), and - returns the average of a and b""" - return (a+b)/2 - -Note that docstrings are entered in the immediate line after the -function definition and put as a triple quoted string. And here as far -as the code functionality is concerned, we didn't do anything. We just -added an abstract of what the function does. - -Now try this in the ipython interpreter. -:: - - avg? - -It displays the docstring as we gave it. Thus docstring is a good way -of documenting the function we write. - -Try to do this, -:: - - f? - -It doesn't have a docstring associated with it. Also we cannot infer -anything from the function name, and thus we are forced to read the -code to understand about the function. - -{{{ switch to next slide, exercise 3 }}} - -%% 3 %% Add docstring to the function f. - -Pause here and try to do it yourself. - -{{{ switch to next slide, solution }}} - -We need to define the function again to add docstring to the function -``f`` and we do it as, -:: - - def f(x): - """Accepts a number x as argument and, - returns the square of the number x.""" - return x*x - -{{{ switch to next slide, exercise 4 }}} - -%% 4 %% Write a python function named ``circle`` which returns the - area and perimeter of a circle given radius ``r``. - -Pause here and try to solve the problem yourself. - -{{{ switch to next slide, solution 4 }}} - -The problem requires us to return two values instead of one which we -were doing till now. We can solve the problem as, -:: - - def circle(r): - """returns area and perimeter of a circle given radius r""" - pi = 3.14 - area = pi * r * r - perimeter = 2 * pi * r - return area, perimeter - -A python function can return any number of values. There is no -restriction for it. - -Let us call the function ``circle`` as, -:: - - a, p = circle(6) - print a - print p - -Now we have done enough coding, let us do some code reading exercise, - -{{{ switch to next slide, what }}} - -What does the function ``what`` do? - -.. def what( n ): -.. if n < 0: n = -n -.. while n > 0: -.. if n % 2 == 1: -.. return False -.. n /= 10 -.. return True - -Pause here and try to figure out what the function ``what`` does. - -{{{ switch to next slide, even_digits }}} - -.. def even_digits( n ): -.. """returns True if all the digits in the number n are even, -.. returns False if all the digits in the number n are not even""" -.. if n < 0: n = -n -.. while n > 0: -.. if n % 2 == 1: -.. return False -.. n /= 10 -.. return True - -The function returns ``True`` if all the digits of the number ``n`` -are even, otherwise it returns ``False``. - -Now one more code reading exercise, - -{{{ switch to next slide, what }}} - -What does the function ``what`` do? - -.. def what( n ): -.. i = 1 -.. while i * i < n: -.. i += 1 -.. return i * i == n, i - -Pause here and try to figure out what the function ``what`` does. - -{{{ switch to next slide, is_perfect_square }}} - -.. def is_perfect_square( n ): -.. """returns True and square root of n, if n is a perfect square, -.. otherwise returns False and the square root of the -.. next perfect square""" -.. i = 1 -.. while i * i < n: -.. i += 1 -.. return i * i == n, i - - -The function returns ``True`` and the square root of ``n`` if n is a -perfect square, otherwise it returns ``False`` and the square root of -the next perfect square. - -This brings us to the end of this tutorial, in this tutorial we covered - -{{{ switch to next slide, summary }}} - -- Functions in Python -- Passing parameters to a function -- Returning values from a function - -We also did few code reading exercises. - -{{{ switch to next slide, Thank you }}} - -Thank you! diff --git a/getting-started-with-functions/slides.org b/getting-started-with-functions/slides.org deleted file mode 100644 index 8e45b59..0000000 --- a/getting-started-with-functions/slides.org +++ /dev/null @@ -1,211 +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: Getting started with functions -#+AUTHOR: FOSSEE -#+EMAIL: info@fossee.in -#+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 - - Define functions - - Pass arguments to functions - - Learn about docstrings - - Return values from functions - -* Function - - Eliminate code redundancy - - Help in code reuse - - Subroutine - - relatively independent of remaining code - -* ~f(x)~ a mathematical function - - $f(x) = x^{2}$ - - : f(1) -> 1 - : f(2) -> 4 - -* Define ~f(x)~ in Python - #+begin_src python - def f(x): - return x*x - #+end_src - - - ~def~ - keyword - - ~f~ - function name - - ~x~ - parameter / argument to function ~f~ - -* Exercise 1 - - Write a python function named ~cube~ which computes the cube of a given - number ~n~. - - - Pause here and try to solve the problem yourself. - -* Solution - #+begin_src python - def cube(n): - return n**3 - #+end_src - -* ~greet~ function - - Function ~greet~ which will print ~Hello World!~. - #+begin_src python - def greet(): - print "Hello World!" - #+end_src - - Call the function ~greet~ - : In []: greet() - : Hello World! - -* Exercise 2 - - Write a python function named ~avg~ which computes the average of - ~a~ and ~b~. - - - Pause here and try to solve the problem yourself. - -* Solution 2 - #+begin_src python - def avg(a,b): - return (a + b)/2 - #+end_src - - - ~a~ and ~b~ are parameters - - ~def f(p1, p2, p3, ... , pn)~ - -* Docstring - - - Documenting/commenting code is a good practice - #+begin_src python - def avg(a,b): - """ avg takes two numbers as input - (a & b), and returns the average - of a and b""" - return (a+b)/2 - #+end_src - - Docstring - - written in the line after the ~def~ line. - - Inside triple quote. - - Documentation - : avg? -* Exercise 3 - Add docstring to the function f. - -* Solution 3 - -#+begin_src python - def f(x): - """Accepts a number x as argument and, - returns the square of the number x.""" - return x*x -#+end_src - -* Exercise 4 - Write a python function named ~circle~ which returns the area and - perimeter of a circle given radius ~r~. - -* Solution 4 -#+begin_src python - def circle(r): - """returns area and perimeter of a circle given - radius r""" - pi = 3.14 - area = pi * r * r - perimeter = 2 * pi * r - return area, perimeter -#+end_src - -* ~what~ -#+begin_src python - - def what( n ): - if n < 0: n = -n - while n > 0: - if n % 2 == 1: - return False - n /= 10 - return True -#+end_src - -* ~even_digits~ -#+begin_src python - def even_digits( n ): - """returns True if all the digits of number - n is even returns False if all the digits - of number n is not even""" - if n < 0: n = -n - while n > 0: - if n % 2 == 1: - return False - n /= 10 - return True -#+end_src - -* ~what~ -#+begin_src python - def what( n ): - i = 1 - while i * i < n: - i += 1 - return i * i == n, i -#+end_src - -* ~is_perfect_square~ -#+begin_src python - def is_perfect_square( n ): - """returns True and square root of n, - if n is a perfect square, otherwise - returns False and the square root - of the next perfect square""" - i = 1 - while i * i < n: - i += 1 - return i * i == n, i -#+end_src - -* Summary - - Functions in Python - - Passing parameters to a function - - Returning values from a function - - - We also did few code reading exercises. - -* 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/getting-started-with-functions/slides.tex b/getting-started-with-functions/slides.tex deleted file mode 100644 index e9eaa81..0000000 --- a/getting-started-with-functions/slides.tex +++ /dev/null @@ -1,318 +0,0 @@ -% Created 2010-11-10 Wed 18:59 -\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{Getting started with 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 Define functions -\item Pass arguments to functions -\item Learn about docstrings -\item Return values from functions -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Function} -\label{sec-2} - -\begin{itemize} -\item Eliminate code redundancy -\item Help in code reuse -\item Subroutine - -\begin{itemize} -\item relatively independent of remaining code -\end{itemize} - -\end{itemize} -\end{frame} -\begin{frame}[fragile] -\frametitle{\texttt{f(x)} a mathematical function} -\label{sec-3} - - - $f(x) = x^{2}$ - -\begin{verbatim} - f(1) -> 1 - f(2) -> 4 -\end{verbatim} -\end{frame} -\begin{frame}[fragile] -\frametitle{Define \texttt{f(x)} in Python} -\label{sec-4} - -\begin{verbatim} -def f(x): - return x*x -\end{verbatim} - -\begin{itemize} -\item \texttt{def} - keyword -\item \texttt{f} - function name -\item \texttt{x} - parameter / argument to function \texttt{f} -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Exercise 1} -\label{sec-5} - - - Write a python function named \texttt{cube} which computes the cube of a given - number \texttt{n}. - -\begin{itemize} -\item Pause here and try to solve the problem yourself. -\end{itemize} -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution} -\label{sec-6} - -\begin{verbatim} -def cube(n): - return n**3 -\end{verbatim} -\end{frame} -\begin{frame}[fragile] -\frametitle{\texttt{greet} function} -\label{sec-7} - - - Function \texttt{greet} which will print \texttt{Hello World!}. -\begin{verbatim} -def greet(): - print "Hello World!" -\end{verbatim} -\begin{itemize} -\item Call the function \texttt{greet} -\begin{verbatim} - In []: greet() - Hello World! -\end{verbatim} - -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Exercise 2} -\label{sec-8} - - - Write a python function named \texttt{avg} which computes the average of - \texttt{a} and \texttt{b}. - -\begin{itemize} -\item Pause here and try to solve the problem yourself. -\end{itemize} -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 2} -\label{sec-9} - -\begin{verbatim} -def avg(a,b): - return (a + b)/2 -\end{verbatim} - -\begin{itemize} -\item \texttt{a} and \texttt{b} are parameters -\item \texttt{def f(p1, p2, p3, ... , pn)} -\end{itemize} -\end{frame} -\begin{frame}[fragile] -\frametitle{Docstring} -\label{sec-10} - - -\begin{itemize} -\item Documenting/commenting code is a good practice -\begin{verbatim} -def avg(a,b): - """ avg takes two numbers as input - (a & b), and returns the average - of a and b""" - return (a+b)/2 -\end{verbatim} -\item Docstring - -\begin{itemize} -\item written in the line after the \texttt{def} line. -\item Inside triple quote. -\end{itemize} - -\item Documentation -\begin{verbatim} - avg? -\end{verbatim} - -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Exercise 3} -\label{sec-11} - - Add docstring to the function f. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 3} -\label{sec-12} - - -\begin{verbatim} -def f(x): - """Accepts a number x as argument and, - returns the square of the number x.""" - return x*x -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Exercise 4} -\label{sec-13} - - Write a python function named \texttt{circle} which returns the area and - perimeter of a circle given radius \texttt{r}. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 4} -\label{sec-14} - -\begin{verbatim} -def circle(r): - """returns area and perimeter of a circle given - radius r""" - pi = 3.14 - area = pi * r * r - perimeter = 2 * pi * r - return area, perimeter -\end{verbatim} -\end{frame} -\begin{frame}[fragile] -\frametitle{\texttt{what}} -\label{sec-15} - -\begin{verbatim} - -def what( n ): - if n < 0: n = -n - while n > 0: - if n % 2 == 1: - return False - n /= 10 - return True -\end{verbatim} -\end{frame} -\begin{frame}[fragile] -\frametitle{\texttt{even\_digits}} -\label{sec-16} - -\begin{verbatim} -def even_digits( n ): - """returns True if all the digits of number - n is even returns False if all the digits - of number n is not even""" - if n < 0: n = -n - while n > 0: - if n % 2 == 1: - return False - n /= 10 - return True -\end{verbatim} -\end{frame} -\begin{frame}[fragile] -\frametitle{\texttt{what}} -\label{sec-17} - -\begin{verbatim} -def what( n ): - i = 1 - while i * i < n: - i += 1 - return i * i == n, i -\end{verbatim} -\end{frame} -\begin{frame}[fragile] -\frametitle{\texttt{is\_perfect\_square}} -\label{sec-18} - -\begin{verbatim} -def is_perfect_square( n ): - """returns True and square root of n, - if n is a perfect square, otherwise - returns False and the square root - of the next perfect square""" - i = 1 - while i * i < n: - i += 1 - return i * i == n, i -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Summary} -\label{sec-19} - -\begin{itemize} -\item Functions in Python -\item Passing parameters to a function -\item Returning values from a function -\item We also did few code reading exercises. -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Thank you!} -\label{sec-20} - - \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} |