diff -r 88a01948450d -r d33698326409 getting_started_with_functions/slides.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/getting_started_with_functions/slides.org Wed Dec 01 16:51:35 2010 +0530 @@ -0,0 +1,211 @@ +#+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