02 Functions
02 Functions
1. Introduction
2. Types of Functions
3. Create User Defined Function
4. Arguments And Parameters
5. Default Parameters
6. Positional Parameters
7. Function Returning Values
8. Flow of Execution
9. Scope of Variable
22 | P a g e
Function
Reusable block of code that performs a specific task. For example: len(), print(), min(),
max(), sorted () , type() etc.
Types of Functions
Calling a function:
Calling the function actually performs the specified actions with the indicated
parameters
23 | P a g e
● Actual Parameters (Arguments) are values supplied to the function when it is
invoked/called
● Formal Parameters are variables declared by the function that get values when
the function is called.
Example 1:
Observe the following code:
Output:
In the above example, a user defined function “function1” has been defined that
receives one argument. Once the function is defined, it can be called any number of
times with different arguments.
Formal argument: x
Actual argument:
“first call to function “ passed in first call
“second call to function” passed in second call
Example 2: Write a function ADD(A,B) that receives two integer arguments and prints
their sum.
Output:
return keyword:
In Python, the `return` keyword is used in functions to specify the value that the
function will return when it is called. When a function is executed, it may perform some
computations or operations, and the result can be sent back to the caller using the
`return` statement.
24 | P a g e
The basic syntax for using the `return` statement is as follows:
3. Returning None:
If a function doesn't have a `return` statement or has a `return` statement
without any value, it implicitly returns `None`.
`None` is a special constant in Python that represents the absence of a value.
25 | P a g e
4. Early Exit with Return:
You can use the `return` statement to exit a function early if certain conditions
are met. This is useful when you want to terminate the function before reaching
the end.
Scope of a variable:
In Python, the scope of a variable refers to the region of the program where the variable
is accessible. The scope determines where a variable is created, modified, and used.
Global Scope:
● Variables defined outside of any function or block have a global scope.
● They are accessible from anywhere in the code, including inside functions.
● To create a global variable, you define it at the top level of your Python script
or module.
Local Scope:
● Variables defined inside a function have a local scope.
● They are accessible only within the function where they are defined.
● Local variables are created when the function is called and destroyed when the
function returns.
26 | P a g e
Points to be noted:
● When local variable and global variable have different names: global
variable can be accessed inside the function
● When local and global variable have same name : priority is given to local
copy of variable
Lifetime of a variable:
The lifetime of a variable in Python depends on its scope. Global variables persist
throughout the program's execution, local variables within functions exist only during
the function's execution.
Study the following programs:
Example 1:
27 | P a g e
Example 2:
However, if you assign a different list to a variable inside a function in Python, it will
create a new local variable that is separate from any variables outside the function. This
local variable will only exist within the scope of the function, and changes made to it
won't affect the original list outside the function.
28 | P a g e
Output:
global keyword
In Python, the global keyword is used to indicate that a variable declared inside a
function should be treated as a global variable, rather than a local variable. When you
assign a value to a variable inside a function, Python, by default, creates a local variable
within that function's scope. However, if you need to modify a global variable from
within a function, you must use the global keyword to specify that you want to work
with the global variable instead.
Here's the basic syntax for using the global keyword:
For example:
29 | P a g e
Default Arguments:
● Default arguments are used when a function is called with fewer arguments
than there are parameters.
● The default values are specified in the function definition.
● If a value is not provided for a parameter during the function call, the default
value is used.
Keyword Arguments:
● In this type, each argument is preceded by a keyword (parameter name)
followed by an equal sign.
● The order of keyword arguments does not matter, as they are matched to the
function parameters based on their names.
● These arguments provide flexibility to call a function with arguments passed in
any order.
Python modules:
● In Python, a module is a file containing Python code that defines variables,
functions, and classes.
● Modules allow you to organize and reuse code by breaking it into separate files,
making it easier to maintain and understand complex programs.
● Python's standard library comes with a vast collection of built-in modules that
cover various functionalities
● If needed, you can also create your own custom modules.
● To use a module in your Python code, you need to import it using the import
statement.
math module:
30 | P a g e
● The math module in Python is a built-in module that provides various
mathematical functions and constants.
● It is part of the Python Standard Library i.e. it does not require any additional
installation to use.
● To use the math module, you need to import it at the beginning of your Python
script.
● Once you've imported the module, you can access its functions and constants
using the math prefix.
Here are some commonly used functions and constants provided by the math
module:
Mathematical Constants:
● math.pi: Represents the mathematical constant π (pi).
● math.e: Represents the mathematical constant e (Euler's number).
Basic Mathematical Functions:
● math.sqrt(x): Returns the square root of x.
● math.pow(x, y): Returns x raised to the power y.
● math.exp(x): Returns the exponential of x (e^x).
● math.log(x, base): Returns the logarithm of x to the specified base (default base
is e).
Trigonometric Functions (all angles are in radians):
● math.sin(x), math.cos(x), math.tan(x): Sine, cosine, and tangent of x,
respectively.
● math.asin(x), math.acos(x), math.atan(x): Arcsine, arccosine, and arctangent of
x, respectively.
Hyperbolic Functions:
● math.sinh(x), math.cosh(x), math.tanh(x): Hyperbolic sine, cosine, and tangent
of x, respectively.
Angular Conversion:
● math.degrees(x): Converts x from radians to degrees.
● math.radians(x): Converts x from degrees to radians.
Miscellaneous:
● math.ceil(x): Returns the smallest integer greater than or equal to x.
● math.floor(x): Returns the largest integer less than or equal to x.
● math.factorial(x): Returns the factorial of x.
Study the following examples:
Example 1:
31 | P a g e
Example 2:
Example 3:
Statistics module:
● The statistics module in Python is another built-in module that provides
functions for working with statistical data.
● It offers a variety of statistical functions to compute measures like mean,
median, standard deviation, variance, etc.
● The statistics module is part of the Python Standard Library, so there's no need
to install any additional packages to use it.
Here are some commonly used functions provided by the statistics module:
● statistics.mean(data): Calculates the arithmetic mean (average) of the data.
● statistics.median(data): Computes the median value of the data.
● statistics.mode(data): Finds the mode (most common value) in the data.
Example 1:
32 | P a g e
Example 2:
random module
● The random module in Python is another built-in module that provides
functions for generating random numbers, sequences, and making random
choices.
● It is commonly used for tasks such as random number generation, random
shuffling, and random sampling.
Here are some commonly used functions provided by the random module:
● random.random(): Generates a random float number in the range [0.0, 1.0).
● random.uniform(a, b): Generates a random float number in the range [a, b).
● random.randint(a, b): Generates a random integer in the range [a, b]
(inclusive).
● random.choice(sequence): Picks a random element from a sequence (list,
tuple, string, etc.).
● random.shuffle(sequence): Shuffles the elements of a sequence randomly (in-
place).
Example 1:
What is the possible outcome/s of following code?
Possible options:
a) green
b) yellow
33 | P a g e
c) blue
d) orange
Solution:
Here, the possible values for variable random-sample are 3, 4 and 5. Hence, the possible
Outputs of above code are b) Yellow and d) orange.
Example 2:
What are the possible output/s for the following code?
Output Options:
i. 29: 26:25 :28 : ii. 24: 28:25:26:
iii. 29: 26:24 :28 : iv. 29: 26:25:26:
Solution:
Option iv
Example 3:
What are the possible outcome/s for the following code:
Output Options:
i. 103#102#101#100# ii. 100#101#102#103#
iii. 100#101#102#103#104# iv. 4#103#102#101#100#
Solution:
Option i and option iv
34 | P a g e
1. What will be the output of the following code?
a) 10
b) 30
c) error
d) 20
2. Name the Python Library modules which need to be imported to invoke the
following functions:
a) sin()
b) randint()
35 | P a g e
8. The values being passed through a function call statements are called
a) Actual parameter
b) Formal parameter
c) default parameter
d) None of these
a) global a
b) global b=100
c) global b
d) global a=100
36 | P a g e
a) 5
b) 6
c) 4
d) This code will raise an error.
14. A function is defined as below, the function call parameters can be:
a) Two tuples
b) Two numbers
c) One number
d) All of the above
16. What possible outputs(s) are expected to be displayed on screen at the time of
execution of the program from the following code? Also specify the maximum
values that can be assigned to each of the variables Lower and Upper.
a) 10#40#70#
b) 30#40#50#
c) 50#60#70#
d) 40#50#70#
17. What will be the output of the Python code?
>>> def testify(a,b):
return a-b
>>> sum=testify(22,55)
>>> sum+30
a) 33
b) -33
c) 3
37 | P a g e
d) -3
21. Look at the function definition and the function call and determine the correct
output
>>> def test(a):
if(a>10):
a += 10
if(a>20):
a += 20
if(a>30):
38 | P a g e
a +=30
print(a)
>>> test(11)
a) 21
b) 72
c) 61
d) 71
a) [1, 2, 3, 4, 5, 6]
b) [100, 2, 3, 4, 5, 6]
c) [100, 2, 3, 4, 5]
d) [1, 2, 3, 4, 5]
a) [1, 2, 3, 4]
b) [5, 6, 7]
c) [1, 2, 3, 4, 5, 6, 7]
d) This code will raise an error.
24. Assertion (A): To use a function from a particular module, we need to import
the module.
Reason (R): import statement can be written anywhere in the program,
before using a function from that module.
a) Both A and R are true and R is the correct explanation for A
b) Both A and R are true and R is not the correct explanation for A
c) A is True but R is False
d) A is false but R is True
39 | P a g e
25. What will be the output of the following Python code?
def add (num1, num2):
sum = num1 + num2
sum = add(20,30)
print(sum)
27. What possible outputs(s) are expected to be displayed on screen at the time of
execution of the program from the following code? Also specify the maximum
values that can be assigned to each of the variables FROM and TO.
a) 10#40#70#
b) 30#40#50#
c) 50#60#70#
d) 40#50#70#
40 | P a g e
29. Predict output:
30. Rewrite the following code after removing the syntactical errors (if any).
Underline each correction.
a) Delhi#Mumbai#Chennai#Kolkata#
b) Mumbai#Chennai#Kolkata#Mumbai#
c) Mumbai# Mumbai #Mumbai # Delhi#
d) Mumbai# Mumbai #Chennai # Mumbai
41 | P a g e
34. What will be the output of the following code?
i. ii.
37. Find and write the output of the following Python code:
def Display(str):
m=""
for i in range(0,len(str)):
if(str[i].isupper()):
m=m+str[i].lower()
elif str[i].islower():
m=m+str[i].upper()
else:
if i%2==0:
m=m+str[i-1]
else:
m=m+"#" print(m)
42 | P a g e
Display('Fun@Python3.0')
38. Find and write the output of the following python code:
I ii
39. What are the possible outcome/(s) for the following code.Also specify the
maximum and minimum value of R when K is assigned value as 2:
a) Stop # Wait # Go
b) Wait # Stop #
c) Go # Wait #
d) Go # Stop #
43 | P a g e
41. Explain the positional parameters in Python function with the help of
suitable example.
42. Predict the output of following:
i. ii.
iii. iv.
v vi
44. What possible outputs(s) will be obtained when the following code is
executed?
Options:
a) RED* b) WHITE*
WHITE* BLACK*
BLACK*
c) WHITE* WHITE* d) YELLOW*
BLACK* BLACK* WHITE*WHITE*
BLACK* BLACK* BLACK*
44 | P a g e
45. What possible outputs(s) are expected to be displayed on screen at the time
of execution of the program from the following code? Also specify the
maximum values that can be assigned to each of the variables BEGIN and END.
a) 60#35#
b) 60#35#70#50#
c) 35#70#50#
d) 40#55#60#
46. What possible outputs(s) are expected to be displayed on screen at the time of
execution of the program from the following code? Also specify the maximum
values that can be assigned to each of the variables Lower and Upper.
a) 10#40#70#
b) 30#40#50#
c) 50#60#70#
d) 40#50#70#
47. What are the possible outcome/s for the following code:
Options:
a) 34:31:30:33:
b) 29:33:30:31:
c) 34:31:30:31:
d) 34:31:29:33:
45 | P a g e
48. What are the possible outcome/s :
1 Guess=65
for I in range(1,5):
New=Guess+random.randint(0,I)
print(chr(New),end=' ')
Output Options:
a) A B B C
b) A C B A
c) B C D A
d) C A B D
Output Options :
a) 25
b) 34
c) 20
d) None of the above
Output Options :
a) 99
b) 94
c) 96
d) None of the above
4 Disp=22
Rnd=random.randint(0,Disp)+15
N=1
for I in range(3,Rnd,4):
print(N,end=" ")
N+=1
print()
Output Options:
a) 1
b) 1 2 3 4
c) 1 2
d) 1 2 3
46 | P a g e
5 Area=["NORTH","SOUTH","EAST","WEST"]
for I in range(3):
ToGo=random.randint(0,1) + 1
print(Area[ToGo],end=":")
print()
Output Options:
a) SOUTH : EAST : SOUTH :
b) NORTH : SOUTH : EAST :
c) SOUTH : EAST : WEST :
d) SOUTH : EAST : EAST :
6 MIN = 25
SCORE = 10
for i in range (1,5):
Num = MIN + random.randint(0,SCORE)
print(Num,end=":")
SCORE-=1;
print()
Output Options:
a) 34:31:30:33:
b) 29:33:30:31:
c) 34:31:30:31:
d) 34:31:29:33:
49. Ms. Sana wants to increase the value of variable x by 1 through function
modify(). However this code raises error .Help sana to rectify the code:
i. ii.
47 | P a g e
iii. iv.
i. ii.
iii. iv.
48 | P a g e
54. Predict output:
i. ii.
iii. iv.
Practical Exercise
1 Write a Python function named `calculate_gross_salary` that takes the
basic salary (an integer) as an argument and returns the gross salary. The
gross salary is calculated as follows:
- If the basic salary is less than or equal to 10000, the gross salary
is the basic salary plus 20% of the basic salary.
- If the basic salary is more than 10000, the gross salary is the
basic salary plus 25% of the basic salary.
Write the function definition for `calculate_gross_salary` and use
it to calculate the gross salary for a basic salary of 12000.
2 Write a Python function called calculate_average that takes a list of
numbers as input and returns the average of those numbers.
3 Write a function update_list(L) that receives a list as arguments and
increases the value of even elements by 2.
For example: if the list is [2,4,6,7,9]
after execution of function, the list should be : [4,6,8,7,9]
49 | P a g e