getting-started-with-functions/script.rst
changeset 522 d33698326409
parent 521 88a01948450d
child 523 54bdda4aefa5
--- a/getting-started-with-functions/script.rst	Wed Nov 17 23:24:57 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -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!