Merged heads.
authorPuneeth Chaganti <punchagan@gmail.com>
Mon, 26 Apr 2010 18:15:00 +0530
changeset 111 4ebff217844e
parent 110 c1099ad60539 (diff)
parent 109 381da0ddc07b (current diff)
child 112 7de6be45182e
Merged heads.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/functions.org	Mon Apr 26 18:15:00 2010 +0530
@@ -0,0 +1,106 @@
+* Functions
+*** Outline
+***** Functions
+******* review of what's been done in solving equations tutorial
+********* def
+********* name
+********* arguments
+********* indented block
+********* calling a function
+******* arguments are local to a function
+******* return values
+******* doc strings - with example.
+******* code reading exercises?
+******* default arguments
+******* keyword arguments
+******* availability library functions
+*** Script
+    Welcome friends. 
+
+    In this tutorial we shall be looking at Functions. We already have
+    looked at the basics of functions in the tutorial on solving
+    equations. We shall first review these basics. Next we shall look
+    at other details like doc-strings, default arguments and keyword
+    arguments. 
+
+    Let's write a simple function that prints a Hello message, after
+    accepting a name. 
+
+        def welcome(name):
+	    print "Hello", name 
+
+    You would recall that def is a keyword that indicates a function
+    definition. 'welcome' is the name of the function and 'name' is
+    the lone argument to the function. Note that the function is
+    defined within an indented block, similar to any other block. Our
+    function welcome just has one line in it's definition.  
+    
+    We can call our function by passing, as follows -
+        welcome("World")
+
+    (arguments are local to a function)
+
+    In general functions should be accompanied by documentation on how
+    to use it. Python provides a convenient way of writing within the
+    function itself, using doc strings. They were mentioned in the
+    tutorial on strings. Let's look at how to write them here. 
+
+    Let us add a simple doc string to our welcome function. 
+
+        def welcome(name):
+	    """ Prints a hello message to a person, given a name. """
+	    print "Hello", name 
+    
+    Notice that the doc string uses triple quotes. If the doc-string
+    exceeded one line, we could have used new line characters in
+    it. Also, as expected the doc-string is indented as is required
+    for anything within a block. 
+
+    We shall now look at default arguments. 
+    [show slide with examples of functions with default arguments]
+    The strip function has been used in two different ways in the
+    previous tutorials - one for splitting on spaces and the other for
+    splitting on commas. 
+
+    The function split is being called with no arguments and one
+    argument, respectively. In the first case, white space is being
+    used as a default value. Let's now edit our function, welcome, to
+    use default values. (For convenience, we have dropped the doc-string)
+
+        def welcome(name="World!"):
+	    print "Hello", name 
+    
+    Now, we call the function 'welcome' without passing any arguments
+    to it. 
+        welcome()
+
+    "World!" is used as a default argument, when no name argument is
+    passed to 'welcome'. 
+
+    Let's now look at the use of keyword arguments. 
+    [show slide with examples of functions with keyword arguments]
+    We have already looked at functions and keyword arguments in these
+    examples. loc, linewidth, xy, labels are all keywords. 
+
+    Let's now see, how we can call our function 'welcome', using
+    keyword arguments. We can call the function in a variety of ways.
+        welcome("Hello", "James")
+	welcome("Hi", name="Guido")
+	welcome(name="Guido", greet="Hello")
+
+    Keyword arguments allow us to call functions by passing arguments
+    in any order and removes need to remember the order of arguments
+    in the function definition. 
+
+
+***** return values
+***** arguments are local to a function
+***** availability library functions
+***** code reading exercises?
+  
+    We come to the end of this tutorial on functions. In this tutorial
+    we have learnt about functions in a greater detail. We looked at
+    how to define functions, calling them, default and keyword
+    arguments. 
+
+*** Notes