CH 3functions
CH 3functions
FUNCTIONS
Divide and Conquer
Introductio
n
Large programs are often difficult to manage, thus
large programs are divided into smaller units known as
functions.
It is simply a group of statements under any name i.e.
function name and can be invoked (call) from other part
of program.
Take an example of School Management Software, now
this software will contain various tasks like Registering
student, Fee collection, Library book issue, TC
generation, Result Declaration etc. In this case we have
to create different functions for each task to manage
the software development.
2
Introductio
n
Set of functions is stored in a file called MODULE.
And this approach is known as MODULARIZATION,
makes program easier to understand, test and
maintain.
Commonly used modules that contain source code
for generic need are called LIBRARIES.
Modules contains set of functions. Functions is of
mainly two types:
Built-in Functions
User-Defined Functions
3
Advantages of
Function
PROGRAM HANDLING EASIER : only small part of the
program is dealt with at a time.
REDUCED LoC: as with function the common set of code
is written only once and can be called from any part of
program, so it reduces Line of Code
EASY UPDATING : if function is not used then set of
code is to be repeated everywhere it is required.
Hence if we want to change in any formula/expression
then we have to make changes to every place, if
forgotten then output will be not the desired output.
With function we have to make changes to only one
location.
4
User Defined
Functions
A function is a set of statements that performs a specific
task; a common structuring elements that allows you to
use a piece of code repeatedly in different part of
program. Functions are also known as sub-routine,
methods, procedure or subprogram.
Syntax to create USER DEFINED FUNCTION
7
Function with no argument and
no return
This type of function is also known as void
function
FUNCTION NAME NO PARAMETER, HENCE VOID
Return keyword not used
9
Function with parameters but no
return value
10
Function with parameter and
return
We can return values from function using
return keyword.
The return value must be used at the calling
place by –
Either storeit any variable
Use with print()
Use in any expression
11
Function with
return
12
Function with
return
NOTE: the return statement ends
a function execution even if it is
in the middle of function.
Anything written below return
statement will become
unreachable code.
def
max(x,y):
if x>y:
r
e
print(“Iam
t not 13
reachable”)
Function not returning
value
Function may or may not return a value. Non returning function
is also known as VOID function. It may or may not contain
return. If it contain return statement then it will be in the form
of:
[no value after
return return]
14
Parameters and Arguments in
Function
Parameters are the value(s) provided in the parenthesis
when we write function header. These are the values
required by function to work
If there are more than one parameter, it must be separated
by comma(,)
An Argument is a value that is passed to the function when it
is called. In other words arguments are the value(s) provided
in function call/invoke statement
Parameter is also known as FORMAL
ARGUMENTS/PARAMETERS
Arguments is also known ACTUA
as ARGUMENTS/PARAMETER L
Note: Function can alter only MUTABLE TYPE
values.
15
Example of Formal/Actual
Arguments
FORMAL ARGUMENT
ACTUAL ARGUMENT
16
Types of Arguments
There are 3 types of Actual Arguments allowed
in Python:
1. Positional arguments
2. Default arguments
3. Keyword arguments
17
Positional
arguments
Are arguments passed to a function in
correct positional order
15): def 20
Default
arguments
21
Default
arguments
22
Keyword(Named)
Arguments
The default keyword gives flexibility to specify
default value for a parameter so that it can be
skipped in the function call, if needed. However, still
we cannot change the order of arguments in
function call i.e. you have to remember the order of
the arguments and pass the value accordingly.
To get control and flexibility over the values sent as
arguments, python offers KEYWORD ARGUMENTS.
This allows to call function with arguments in any
order using name of the arguments.
23
Keyword(Named)
Argument
24
Rules for combining all three type of
arguments
An argument list must first contain
positional arguments followed by keyword
arguments
Keyword arguments should be taken from
the required arguments
You cannot specify a value for an argument more
than once
25
Example of legal/illegal function
call
def
Average(n1,n2,n3=100
):
FUNCTION CALL LEGAL REASON
return (n1+n2+n3)/3 /
ILLEG
AL
Average(n1=20, n2=40,n3=80) LEGAL Non default values provided as
named arguments
Average(n3=10,n2=7,n1=100) LEGAL Keyword argument can be in any
order
Average(100,n2=10,n3=15) LEGAL Positional argument before the
keyword arguments
Average(n3=70,n1=90,100) ILLEGAL Keyword argument before the
positional arguments
Average(100,n1=23,n2=1) ILLEGAL Multiple values provided for 26
n1
Returning Multiple
values
Unlike other programming languages, python
lets you return more than one value from
function.
The multiple return value must be either stored in
TUPLE or we can UNPACK the received value by
specifying the same number of variables on the
left of assignment of function call.
Let us see an example of both :-
27
Multiple return value stored in
TUPLE
28
Multiple return value stored by
unpacking in multiple
variables
29
Compositio
n
Refers to using an expression as a part of
large
expression, or a statement as a part larg
of statement. e
Examples
Max((a+b),(c+a)) # Arithmetic
Prize(Card or Cash) # Logical
name="Vikra
m“
print(name.replace("m","nt").upper())
#function
30
Scope of
Variables
SCOPE means in which part(s) of the program,
a particular piece of code or data is accessible
or known.
In Python there are broadly 2 kinds of Scopes:
Global Scope
Local Scope
31
Global
Scope
A name declared in top level segment( main ) of a
program is said to have global scope and can be
used in entire program.
Variable defined outside all functions are global
variables.
32
Local
Scope
A name declare in a function body is said to have
local scope i.e. it can be used only within this
function and the other block inside the function.
The formal parameters are also having local scope.
Let us understand with example….
33
Example – Local and Global
Scope
34
Example – Local and Global
Scope
38
Name Resolution (Scope
Resolution)
For every name used within program python follows name resolution
rules known as LEGB rule.
(i) LOCAL : first check whether name is in local
environment, if yes Python uses its value otherwise
moves to (ii)
(ii) ENCLOSING ENVIRONMENT: if not in local, Python
checks whether name is in Enclosing Environment, if yes
Python uses its value otherwise moves to (iii)
GLOBAL ENVIRONMENT: if not in above scope Python
checks it in Global environment, if yes Python uses it
otherwise moves to (iv)
BUILT-IN ENVIRONMENT: if not in above scope, Python
checks it in built-in environment, if yes, Python uses its
value otherwise Python would report the error:
name <variable> not defined 39
Predict the
output
Program with
variable “value”
in both LOCAL
and GLOBAL
SCOPE
40
Predict the
output
Program with
variable “value”
in both LOCAL
and GLOBAL
SCOPE
41
Predict the
output
Using GLOBAL
variable “value”
in local scope
42
Predict the
output
Using GLOBAL
variable “value”
in local scope
43
Predict the
output
Variable “value”
neither in local nor
global scope
44
Predict the
output
Variable “value”
neither in local nor
global scope
45
Predict the
output
Variable in Global
not in Local
(input in variable
at global scope)
46
Predict the
output
Variable in Global
not in Local
(input in variable
at global scope)
47
Mutability/Immutability of
Arguments/Parameters and
function call
48
Mutability/Immutability of
Arguments/Parameters and
function call
49
Mutability/Immutability of
Arguments/Parameters and
function call
From the previous example we can recall the
concept learned in class XI that Python
variables are not storage containers,
rather Python variables are like memory
references, they refer to memory address where
the value is stored, thus any change in
immutable type data will also change
the memory address. So any change
to formal argument will not reflect back
to its corresponding actual argument
and in case of mutable type, any change in
mutable type will not change the
memory address of variable. 50
Mutability/Immutability of
Arguments/Parameters and
function call
52
Passing string to function and
count how many
vowels in it
53
Program to count how many times any
character is present in string
54
Program to Jumble the given string
by passing it to function using
temporary string
55
Passing List to
function
We can also pass List to any function as
parameter
Due to the mutable nature of List, function can
alter the list of values in place.
It is mostly used in data structure like sorting,
stack, queue etc.
Let us see how to pass List to function by
few examples:
56
Passing list to function,
and just double
each value
57
Passing list to function to double the
odd values and half the even
values
58
Passing nested list to function and print all those values
which are at diagonal position in the form of matrix
59
Passing list to function to calculate sum and average of
all numbers and return it in the form of tuple
60
Passing list to function to calculate sum and average of
all numbers and return it in the form of tuple
61
Passing tuples to
function
We can also pass tuples to function as parameter
Due to its immutability nature, function can
only access the values of tuples but cannot modify
it.
Let us see how to pass tuples in function by
few example…
62
Input n numbers in tuple and pass
it function to count how many even and odd
numbers are entered.
63
Input n numbers in tuple and pass
it function to count how many even and odd
numbers are entered.
64
Creating a login program with the help of
passing tuple to function
65
Creating a login program with the help of
passing tuple to function
66
Passing Dictionary to
function
Python also allows us to pass dictionaries to
function
Due to its mutability nature, function can alter
the keys or values of dictionary in place
Let us see few examples of how to pass
dictionary to functions.
67
Passingdictionary to function with list and stores
value of list as key and its frequency or no.
the
of occurrence as value
68
Passing dictionary to function with key and value,
and update value at that key in dictionary
69
Passing dictionary to function with key and value,
and update value at that key in dictionary
70
Understanding of main() function
in Python
By default every program starts their execution
from main() function. In Python including a main()
function is not mandatory. It can structure our Python
programs in a logical way that the
puts
components of the most
importan program in
tWe can get the name of current module executing
function.
by using built-in variable name (2 underscore one
before and after of name)
71
Understanding of main() function
in Python
Most non-python
programmers are having the
habit of writing main()
function where the important
and starter code of programs
are written. In Python we
can also create main()
and call it by checking
name to
main and then call
any
72
function, in this case
Recursio
nIt is one of the
most powerful tool in programming
language. It is a process where function calls itself
again and again.
Recursion basically divides the big problem into small
problems up to the point where it can be solved easily,
for example if we have to calculate factorial of a 5, we
will divide factorial of 5 as 5*factorial(4), then
4*factorial(3), then 3*factorial(2), then 2*factorial(1)
and now factorial of 1 can be easily solved without any
calculation, now each pending function will be executed
in reverse order.
73
Condition for Implementing
Recursion
It must contain BASE CONDITION i.e. at which point recursion will
end otherwise it will become infinite.
BASE CONDITION is specified using „if‟ to
specify the termination
condition
Execution in Recursion is in reverse order using STACK. It first divide the
large problem into smaller units and then starts solving from bottom to
top.
It takes more memory as compare to LOOP statement because with
every recursion call memory space is allocated for local variables.
The computer may run out of memory if recursion becomes infinite or
termination condition not specified.
It is less efficient in terms of speed and execution time
Suitable for complex data structure problems like TREE, GRAPH etc
74
Example -
Recursion
75
Example -
Recursion
76
Questions based on
functions
WAP to create function Lsearch() which takes List
and number to search and return the position of
number in list using Linear Searching method