summaryrefslogtreecommitdiff
path: root/getting_started_with_functions/script.rst
diff options
context:
space:
mode:
Diffstat (limited to 'getting_started_with_functions/script.rst')
-rw-r--r--getting_started_with_functions/script.rst335
1 files changed, 281 insertions, 54 deletions
diff --git a/getting_started_with_functions/script.rst b/getting_started_with_functions/script.rst
index 26e5b79..4288224 100644
--- a/getting_started_with_functions/script.rst
+++ b/getting_started_with_functions/script.rst
@@ -18,6 +18,8 @@
.. 1. should have ``ipython`` installed.
.. #. getting started with ``ipython``.
+.. #. Conditionals
+.. #. Loops
.. Author : Anoop Jacob Thomas <anoop@fossee.in>
@@ -31,116 +33,217 @@
Getting started with functions
==============================
-{{{ show welcome slide }}}
+.. L1
-Hello and welcome to the tutorial getting started with functions.
+{{{ Show the first slide containing title, name of the production
+team along with the logo of MHRD }}}
-{{{ switch to next slide, outline slide }}}
+.. R1
-In this tutorial we will learn about functions in python, how to
-define functions, arguments to functions, docstrings, and function
-return value.
+Hello friends and welcome to the tutorial 'Getting started with functions'.
+
+.. L2
+
+{{{ switch to slide containing objectives }}}
+
+.. R2
+
+At the end of this tutorial, you will be able to,
+
+ 1. Define a function.
+ #. Define functions with arguments.
+ #. Learn about docstrings.
+ #. Learn about function return value.
+ #. Read code.
+
+.. L3
+
+{{{ Switch to the pre-requisite slide }}}
+
+.. R3
+
+Before beginning this tutorial,we would suggest you to complete the
+tutorial on "Conditionals" and "Loops".
+
+.. L4
{{{ switch to next slide, Function }}}
+.. R4
+
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
+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,
+.. L5
+
{{{ switch to next slide, f(x) a mathematical function }}}
+.. R5
+
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
+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 }}}
+.. R6
+
+Start your ipython interpreter by typing,
-In your Ipython interpreter type the following,
+.. L6
+
+{{{ Open the terminal }}}
+::
+
+ ipython
+
+.. R7
+
+Let us define our function f(x)
+
+.. L7
::
def f(x):
return x*x
+.. R8
+
Well that defined the function, so before learning what we did let us
see if it returns the expected values, try,
+
+.. L8
::
f(1)
f(2)
+.. R9
+
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
+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 }}}
+Pause the video here, try out the following exercise and resume the video.
+
+.. L9
+
+.. L10
+
+{{{ Show slide with exercise 1 }}}
+
+.. R10
+
+ Write a python function named ``cube`` which computes the cube of
+ a given number n.
-%% 1 %% Write a python function named cube which computes the cube of
- a given number n.
+.. R11
-Pause here and try to solve the problem yourself.
+Switch to your terminal for solution.The problem can be solved as,
-{{{ switch to next slide, solution }}}
+.. L11
-The problem can be solved as,
+{{{continue from paused state}}}
+{{{ Switch to the terminal }}}
::
def cube(n):
return n**3
-And now let us see how to write functions without arguments.
+.. R12
+
+Let us check whether our function returns the cube of a number or not
+
+.. L12
+::
-{{{ switch to next slide, greet function }}}
+ cube(2)
+
+.. R13
+
+It returned 8,which means we have defined our function,the right way.
+And now let us see how to write functions without arguments.
let us define a new function called ``greet`` which will print ``Hello
World``.
+
+.. L13
::
def greet():
print "Hello World!"
-now try calling the function,
+.. R14
+
+now we call the function as,
+
+.. L14
::
greet()
+.. R15
+
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 }}}
+Pause the video here, try out the following exercise and resume the video.
+
+.. L15
+
+.. L16
+
+{{{ Show slide with exercise 2 }}}
-%% 2 %% Write a python function named ``avg`` which computes the
- average of ``a`` and ``b``.
+.. R16
-Pause here and try to solve the problem yourself.
+ Write a python function named ``avg`` which computes the
+ average of ``a`` and ``b``.
-{{{ switch to next slide, solution 2 }}}
+.. R17
-The problem can be solved as,
+Switch to your terminal for solution.
+
+.. L17
+
+{{{continue from paused state}}}
+{{{ Switch to the terminal }}}
::
def avg(a,b):
return (a + b)/2
+.. R18
+
+Let us test our function
+
+.. L18
+::
+
+ avg(20, 30)
+
+.. R19
+
+We get the correct average, 25.
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
+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,
+
+.. L19
::
def avg(a,b):
@@ -148,35 +251,63 @@ function ``avg`` and add docstring to it. Do the following,
returns the average of a and b"""
return (a+b)/2
+.. L20
+
+{{{ switch to next slide, docstring }}}
+
+.. R20
+
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.
+.. R21
+
Now try this in the ipython interpreter.
+
+.. L21
+
+{{{ Switch to the terminal }}}
::
avg?
+.. R22
+
It displays the docstring as we gave it. Thus docstring is a good way
of documenting the function we write.
-Try to do this,
+ Now type,
+
+.. L22
::
f?
+.. R23
+
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 }}}
+Pause the video here, try out the following exercise and resume the video.
+
+.. L23
+
+.. L24
+
+{{{ Show slide with exercise 3 }}}
-%% 3 %% Add docstring to the function f.
+.. R24
-Pause here and try to do it yourself.
+ Add docstring to the function f.
-{{{ switch to next slide, solution }}}
+.. L25
+
+{{{ Show slide with solution 3 }}}
+
+.. R25
We need to define the function again to add docstring to the function
``f`` and we do it as,
@@ -187,17 +318,28 @@ We need to define the function again to add docstring to the function
returns the square of the number x."""
return x*x
-{{{ switch to next slide, exercise 4 }}}
+Let us solve one more exercise
+Pause the video here, try out the following exercise and resume the video.
+
+.. L27
-%% 4 %% Write a python function named ``circle`` which returns the
- area and perimeter of a circle given radius ``r``.
+{{{ Show slide with exercise 4 }}}
-Pause here and try to solve the problem yourself.
+.. R27
-{{{ switch to next slide, solution 4 }}}
+ Write a python function named ``circle`` which returns the
+ area and perimeter of a circle given radius ``r``.
+
+.. R28
+
+Switch to the terminal for solution.
The problem requires us to return two values instead of one which we
were doing till now. We can solve the problem as,
+
+.. L28
+
+{{{ Switch to the terminal }}}
::
def circle(r):
@@ -207,21 +349,31 @@ were doing till now. We can solve the problem as,
perimeter = 2 * pi * r
return area, perimeter
+.. R29
+
A python function can return any number of values. There is no
restriction for it.
Let us call the function ``circle`` as,
+
+.. L29
::
a, p = circle(6)
print a
print p
+.. R30
+
Now we have done enough coding, let us do some code reading exercise,
+.. L30
+
{{{ switch to next slide, what }}}
-What does the function ``what`` do?
+.. R31
+
+Pause here and try to figure out what the function ``what`` does.
.. def what( n ):
.. if n < 0: n = -n
@@ -231,13 +383,18 @@ What does the function ``what`` do?
.. n /= 10
.. return True
-Pause here and try to figure out what the function ``what`` does.
+{{{continue from paused state}}}
+It will return true if ``n % 2`` is not equal to 1 and will return false, otherwise.
+
+.. L31
+
+.. L32
{{{ 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"""
+.. """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:
@@ -245,14 +402,20 @@ Pause here and try to figure out what the function ``what`` does.
.. n /= 10
.. return True
-The function returns ``True`` if all the digits of the number ``n``
+.. R32
+
+The function here returns ``True`` if all the digits of the number ``n``
are even, otherwise it returns ``False``.
Now one more code reading exercise,
+.. L33
+
{{{ switch to next slide, what }}}
-What does the function ``what`` do?
+.. R33
+
+Pause here and try to figure out what the function ``what`` does.
.. def what( n ):
.. i = 1
@@ -260,7 +423,11 @@ What does the function ``what`` do?
.. i += 1
.. return i * i == n, i
-Pause here and try to figure out what the function ``what`` does.
+{{{continue from paused state}}}
+The function returns two values. One it returns the result of the while statement
+whether true of false, and second it prints the value that `ii`` currently holds.
+
+.. L34
{{{ switch to next slide, is_perfect_square }}}
@@ -273,21 +440,81 @@ Pause here and try to figure out what the function ``what`` does.
.. i += 1
.. return i * i == n, i
+.. R34
-The function returns ``True`` and the square root of ``n`` if n is a
+Here, 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
+.. L35
+
+{{{ switch to summary slide }}}
+
+.. R35
+
+This brings us to the end of this tutorial. In this tutorial,
+we have learnt to,
+
+ 1. Define functions in Python by using the keyword ``def``.
+ #. Call the function by specifying the function name.
+ #. Assign a docstring to a function by putting it as a triple quoted string.
+ #. Pass parameters to a function.
+ #. Return values from a function.
+
+.. L26
+
+{{{Show self assessment questions slide}}}
+
+.. R36
+
+Here are some self assessment questions for you to solve
-{{{ switch to next slide, summary }}}
+1. What will the function do?
+::
+
+ def what(x)
+ return x*x
+
+ - Returns the square of x
+ - Returns x
+ - Function doesn't have docstring
+ - Error
+
+2. How many arguments can be passed to a python function?
+
+ - None
+ - One
+ - Two
+ - Any
+
+3. Write a function which calculates the area of a rectangle.
+
+.. L37
+
+{{{solution of self assessment questions on slide}}}
+
+.. R37
+
+And the answers,
+
+1. The function will result into an error due to the use of wrong
+ syntax in defining the function.The function line should always
+ end with a colon
+
+2. Any number of arguments can be passed to a python function.
+
+3. As we know, area of a rectangle is product of it's length and breadth.
+ Hence, we define our function as,
+::
-- Functions in Python
-- Passing parameters to a function
-- Returning values from a function
+ def area(l,b):
+ return l * b
-We also did few code reading exercises.
+.. L38
+
+{{{ switch to Thank you slide }}}
-{{{ switch to next slide, Thank you }}}
+.. R38
+Hope you have enjoyed this tutorial and found it useful.
Thank you!