# HG changeset patch # User Puneeth Chaganti # Date 1272285810 -19800 # Node ID c1099ad6053941d347faf015508089cfe9e31f1b # Parent dd6973b09679268a09310c83e52a64918953f1e5 Added functions org file. diff -r dd6973b09679 -r c1099ad60539 functions.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/functions.org Mon Apr 26 18:13:30 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