Python
Python
Unit-V
Introduction - Built-in Functions - Composition of Functions - Parameters and
Arguments - Function Calls - The return Statement - Python Recursive Function -
The Anonymous Functions - Writing Python Scripts (Book – 3, Sec. 4.1 – 4.10)
Built-in Functions
Python has a set of built-in functions.
Function Description
divmod() Returns the quotient and the remainder when argument1 is divided
by argument2
hasattr() Returns True if the specified object has the specified attribute
(property/method)
map() Returns the specified iterator with the specified function applied to
each item
The Python built-in functions are defined as the functions whose functionality is
pre-defined in Python. The python interpreter has several functions that are always
present for use. These functions are known as Built-in Functions. There are several
built-in functions in Python which are listed below:
1. # integer number
2. integer = -20
3. print('Absolute value of -40 is:', abs(integer))
4.
5. # floating number
6. floating = -20.83
7. print('Absolute value of -40.83 is:', abs(floating))
Output:
1. # all values true
2. k = [1, 3, 4, 6]
3. print(all(k))
4.
5. # all values false
6. k = [0, False]
7. print(all(k))
8.
9. # one false value
10.k = [1, 3, 7, 0]
11.print(all(k))
12.
13.# one true value
14.k = [0, False, 5]
15.print(all(k))
16.
17.# empty iterable
18.k = []
19.print(all(k))
Output:
True
False
False
False
True
1. x = 10
2. y = bin(x)
3. print (y)
Output:
0b1010
Python bool()
1. test1 = []
2. print(test1,'is',bool(test1))
3. test1 = [0]
4. print(test1,'is',bool(test1))
5. test1 = 0.0
6. print(test1,'is',bool(test1))
7. test1 = None
8. print(test1,'is',bool(test1))
9. test1 = True
10.print(test1,'is',bool(test1))
11.test1 = 'Easy string'
12.print(test1,'is',bool(test1))
Output:
[] is False
[0] is True
0.0 is False
None is False
True is True
Python bytes()
1. string = "Hello World."
2. array = bytes(string, 'utf-8')
3. print(array)
Output:
1. x = 8
2. print(callable(x))
Output:
False
The python compile() function takes source code as input and returns a code object
which can later be executed by exec() function.
1. # compile string source to code
2. code_str = 'x=5\ny=10\nprint("sum =",x+y)'
3. code = compile(code_str, 'sum.py', 'exec')
4. print(type(code))
5. exec(code)
6. exec(x)
Output:
<class 'code'>
sum = 15
1. x = 8
2. exec('print(x==8)')
3. exec('print(x+4)')
Output:
True
12
1. s = sum([1, 2,4 ])
2. print(s)
3.
4. s = sum([1, 2, 4], 10)
5. print(s)
Output:
17
1. l = [4, 3, 2, 0]
2. print(any(l))
3.
4. l = [0, False]
5. print(any(l))
6.
7. l = [0, False, 5]
8. print(any(l))
9.
10.l = []
11.print(any(l))
Output:
R.NISHA M.Sc,M.Phil,B.Ed Page 13
PYTHON
True
False
True
False
1. normalText = 'Python is interesting'
2. print(ascii(normalText))
3.
4. otherText = 'Pythön is interesting'
5. print(ascii(otherText))
6.
7. print('Pyth\xf6n is interesting')
Output:
'Python is interesting'
'Pyth\xf6n is interesting'
Pythön is interesting
Python bytearray()
1. string = "Python is a programming language."
2.
3. # string with encoding 'utf-8'
4. arr = bytearray(string, 'utf-8')
5. print(arr)
Output:
1. x = 8
2. print(eval('x + 1'))
Output:
Python float()
1. # for integers
2. print(float(9))
3.
4. # for floats
5. print(float(8.19))
6.
7. # for string floats
8. print(float("-24.27"))
9.
10.# for string floats with whitespaces
11.print(float(" -17.19\n"))
12.
13.# string float error
14.print(float("xyz"))
Output:
9.0
8.19
-24.27
-17.19
1. # d, f and b are a type
2.
3. # integer
4. print(format(123, "d"))
5.
6. # float arguments
7. print(format(123.4567898, "f"))
8.
9. # binary format
R.NISHA M.Sc,M.Phil,B.Ed Page 16
PYTHON
10.print(format(12, "b"))
Output:
123
123.456790
1100
Python frozenset()
1. # tuple of letters
2. letters = ('m', 'r', 'o', 't', 's')
3.
4. fSet = frozenset(letters)
5. print('Frozen set is:', fSet)
6. print('Empty frozen set is:', frozenset())
Output:
1. class Details:
2. age = 22
3. name = "Phill"
4.
5. details = Details()
6. print('The age is:', getattr(details, "age"))
7. print('The age is:', details.age)
Output:
A Symbol table is defined as a data structure which contains all the necessary
information about the program. It includes variable names, methods, classes, etc.
1. age = 22
2.
3. globals()['age'] = 22
4. print('The age is:', age)
Output:
1. l = [4, 3, 2, 0]
2. print(any(l))
3.
4. l = [0, False]
5. print(any(l))
6.
7. l = [0, False, 5]
8. print(any(l))
9.
10.l = []
11.print(any(l))
Output:
True
False
True
False
1. # list of numbers
2. list = [1,2,3,4,5]
3.
4. listIter = iter(list)
5.
6. # prints '1'
7. print(next(listIter))
8.
9. # prints '2'
10.print(next(listIter))
11.
12.# prints '3'
13.print(next(listIter))
14.
15.# prints '4'
16.print(next(listIter))
17.
18.# prints '5'
19.print(next(listIter))
Output:
1. strA = 'Python'
2. print(len(strA))
Output:
Python list()
1. # empty list
2. print(list())
3.
4. # string
5. String = 'abcde'
6. print(list(String))
7.
8. # tuple
9. Tuple = (1,2,3,4,5)
10.print(list(Tuple))
11.# list
12.List = [1,2,3,4,5]
13.print(list(List))
Output:
[]
[1,2,3,4,5]
[1,2,3,4,5]
The python locals() method updates and returns the dictionary of the current local
symbol table.
A Symbol table is defined as a data structure which contains all the necessary
information about the program. It includes variable names, methods, classes, etc.
1. def localsAbsent():
2. return locals()
3.
4. def localsPresent():
5. present = True
6. return locals()
7.
8. print('localsNotPresent:', localsAbsent())
9. print('localsPresent:', localsPresent())
Output:
localsAbsent: {}
1. def calculateAddition(n):
2. return n+n
3.
4. numbers = (1, 2, 3, 4)
5. result = map(calculateAddition, numbers)
6. print(result)
R.NISHA M.Sc,M.Phil,B.Ed Page 22
PYTHON
7.
8. # converting map object to set
9. numbersAddition = set(result)
10.print(numbersAddition)
Output:
{8, 2, 4, 6}
1. #A random bytearray
2. randomByteArray = bytearray('ABC', 'utf-8')
3.
4. mv = memoryview(randomByteArray)
5.
6. # access the memory view's zeroth index
7. print(mv[0])
8.
9. # It create byte from memory view
10.print(bytes(mv[0:2]))
11.
12.# It create list from memory view
13.print(list(mv[0:3]))
Output:
65
b'AB'
R.NISHA M.Sc,M.Phil,B.Ed Page 23
PYTHON
Python object()
The python object() returns an empty object. It is a base for all the classes and
holds the built-in properties and methods which are default for all the classes.
1. python = object()
2.
3. print(type(python))
4. print(dir(python))
Output:
<class 'object'>
'__str__', '__subclasshook__']
The python open() function opens the file and returns a corresponding file object.
1. # opens python.text file of the current directory
2. f = open("python.txt")
3. # specifying full path
4. f = open("C:/Python33/README.txt")
Output:
Since the mode is omitted, the file is opened in 'r' mode; opens for reading.
1. # Calling function
2. result = chr(102) # It returns string representation of a char
3. result2 = chr(112)
4. # Displaying result
5. print(result)
6. print(result2)
7. # Verify, is it string type?
8. print("is it string type:", type(result) is str)
Output:
Python complex()
1. # Python complex() function example
2. # Calling function
3. a = complex(1) # Passing single parameter
4. b = complex(1,2) # Passing both parameters
5. # Displaying result
6. print(a)
7. print(b)
Output:
(1.5+0j)
(1.5+2.2j)
1. class Student:
2. id = 101
3. name = "Pranshu"
4. email = "[email protected]"
5. # Declaring function
6. def getinfo(self):
7. print(self.id, self.name, self.email)
8. s = Student()
9. s.getinfo()
10.delattr(Student,'course') # Removing attribute which is not available
11.s.getinfo() # error: throws an error
Output:
AttributeError: course
Python dir() function returns the list of names in the current local scope. If the
object on which method is called has a method named __dir__(), this method will
be called and must return the list of attributes. It takes a single object type
argument.
1. # Calling function
2. att = dir()
3. # Displaying result
4. print(att)
Output:
1. # Python divmod() function example
2. # Calling function
3. result = divmod(10,2)
4. # Displaying result
5. print(result)
Output:
(5, 0)
1. # Calling function
2. result = enumerate([1,2,3])
3. # Displaying result
4. print(result)
5. print(list(result))
Output:
Python dict()
1. # Calling function
2. result = dict() # returns an empty dictionary
3. result2 = dict(a=1,b=2)
R.NISHA M.Sc,M.Phil,B.Ed Page 28
PYTHON
4. # Displaying result
5. print(result)
6. print(result2)
Output:
{}
{'a': 1, 'b': 2}
The first argument can be none, if the function is not available and returns only
elements that are true.
1. # Python filter() function example
2. def filterdata(x):
3. if x>5:
4. return x
5. # Calling function
6. result = filter(filterdata,(1,2,6))
7. # Displaying result
8. print(list(result))
Output:
[6]
Hashable types: * bool * int * long * float * string * Unicode * tuple * code
object.
1. # Calling function
2. result = hash(21) # integer value
3. result2 = hash(22.2) # decimal value
4. # Displaying result
5. print(result)
6. print(result2)
Output:
21
461168601842737174
Python help() function is used to get help related to the object passed during the
call. It takes an optional parameter and returns help information. If no argument is
given, it shows the Python help console. It internally calls python's help function.
1. # Calling function
2. info = help() # No argument
3. # Displaying result
4. print(info)
Output:
Python min() function is used to get the smallest element from the collection. This
function takes two arguments, first is a collection of elements and second is key,
and returns the smallest element from the collection.
1. # Calling function
2. small = min(2225,325,2025) # returns smallest element
3. small2 = min(1000.25,2025.35,5625.36,10052.50)
4. # Displaying result
5. print(small)
6. print(small2)
Output:
325
1000.25
In python, a set is a built-in class, and this function is a constructor of this class. It
is used to create a new set using elements passed during the call. It takes an iterable
object as an argument and returns a new set object.
1. # Calling function
2. result = set() # empty set
3. result2 = set('12')
4. result3 = set('javatpoint')
5. # Displaying result
6. print(result)
7. print(result2)
8. print(result3)
Output:
set()
{'1', '2'}
1. # Calling function
2. result = hex(1)
3. # integer value
4. result2 = hex(342)
5. # Displaying result
6. print(result)
7. print(result2)
Output:
0x1
0x156
unique integer number which represents identity. Two objects with non-
overlapping lifetimes may have the same id() value.
1. # Calling function
2. val = id("Javatpoint") # string object
3. val2 = id(1200) # integer object
4. val3 = id([25,336,95,236,92,3225]) # List object
5. # Displaying result
6. print(val)
7. print(val2)
8. print(val3)
Output:
139963782059696
139963805666864
139963781994504
1. class Student:
2. id = 0
3. name = ""
4.
5. def __init__(self, id, name):
6. self.id = id
7. self.name = name
R.NISHA M.Sc,M.Phil,B.Ed Page 33
PYTHON
8.
9. student = Student(102,"Sohan")
10.print(student.id)
11.print(student.name)
12.#print(student.email) product error
13.setattr(student, 'email','[email protected]') # adding new attribute
14.print(student.email)
Output:
102
Sohan
1. # Calling function
2. result = slice(5) # returns slice object
3. result2 = slice(0,5,3) # returns slice object
4. # Displaying result
5. print(result)
6. print(result2)
Output:
slice(None, 5, None)
slice(0, 5, 3)
1. str = "javatpoint" # declaring string
2. # Calling function
3. sorted1 = sorted(str) # sorting string
4. # Displaying result
5. print(sorted1)
Output:
['a', 'a', 'i', 'j', 'n', 'o', 'p', 't', 't', 'v']
Python next() function is used to fetch next item from the collection. It takes two
arguments, i.e., an iterator and a default value, and returns an element.
This method calls on iterator and throws an error if no item is present. To avoid the
error, we can set a default value.
1. number = iter([256, 32, 82]) # Creating iterator
2. # Calling function
3. item = next(number)
4. # Displaying result
5. print(item)
6. # second item
7. item = next(number)
8. print(item)
9. # third item
10.item = next(number)
11.print(item)
Output:
256
32
82
Python input() function is used to get an input from the user. It prompts for the
user input and reads a line. After reading data, it converts it into a string and
returns it. It throws an error EOFError if EOF is read.
1. # Calling function
2. val = input("Enter a value: ")
3. # Displaying result
4. print("You entered:",val)
Output:
Enter a value: 45
You entered: 45
If the number is not a number or if a base is given, the number must be a string.
1. # Calling function
2. val = int(10) # integer value
3. val2 = int(10.52) # float value
4. val3 = int('10') # string value
5. # Displaying result
6. print("integer values :",val, val2, val3)
Output:
integer values : 10 10 10
The isinstance() function takes two arguments, i.e., object and classinfo, and then
it returns either True or False.
1. class Student:
2. id = 101
3. name = "John"
4. def __init__(self, id, name):
5. self.id=id
6. self.name=name
7.
8. student = Student(1010,"John")
9. lst = [12,34,5,6,767]
10.# Calling function
11.print(isinstance(student, Student)) # isinstance of Student class
12.print(isinstance(lst, Student))
Output:
True
False
1. # Calling function
2. val = oct(10)
3. # Displaying result
4. print("Octal value of 10:",val)
Output:
1. # Code point of an integer
2. print(ord('8'))
3.
4. # Code point of an alphabet
5. print(ord('R'))
6.
7. # Code point of a character
8. print(ord('&'))
Output:
56
82
38
1. # positive x, positive y (x**y)
2. print(pow(4, 2))
3.
4. # negative x, positive y
5. print(pow(-4, 2))
6.
7. # positive x, negative y (x**-y)
8. print(pow(4, -2))
9.
10.# negative x, negative y
11.print(pow(-4, -2))
Output:
16
16
0.0625
0.0625
The python print() function prints the given object to the screen or other standard
output devices.
1. print("Python is programming language.")
2.
3. x = 7
4. # Two objects passed
5. print("x =", x)
6.
7. y = x
8. # Three objects passed
9. print('x =', x, '= y')
Output:
x=7
x=7=y
1. # empty range
2. print(list(range(0)))
3.
4. # using the range(stop)
5. print(list(range(4)))
6.
7. # using the range(start, stop)
8. print(list(range(1,7 )))
Output:
[]
[0, 1, 2, 3]
[1, 2, 3, 4, 5, 6]
1. # for string
2. String = 'Java'
3. print(list(reversed(String)))
4.
5. # for tuple
6. Tuple = ('J', 'a', 'v', 'a')
7. print(list(reversed(Tuple)))
8.
9. # for range
10.Range = range(8, 12)
11.print(list(reversed(Range)))
12.
13.# for list
14.List = [1, 2, 7, 5]
15.print(list(reversed(List)))
Output:
[11, 10, 9, 8]
[5, 7, 2, 1]
The python round() function rounds off the digits of a number and returns the
floating point number.
1. # for integers
2. print(round(10))
3.
4. # for floating point
5. print(round(10.8))
6.
7. # even choice
8. print(round(6.6))
Output:
10
R.NISHA M.Sc,M.Phil,B.Ed Page 42
PYTHON
11
1. class Rectangle:
2. def __init__(rectangleType):
3. print('Rectangle is a ', rectangleType)
4.
5. class Square(Rectangle):
6. def __init__(self):
7. Rectangle.__init__('square')
8.
9. print(issubclass(Square, Rectangle))
10.print(issubclass(Square, list))
11.print(issubclass(Square, (list, Rectangle)))
12.print(issubclass(Rectangle, (list, Rectangle)))
Output:
True
False
True
True
Python str
1. str('4')
Output:
'4'
1. t1 = tuple()
2. print('t1=', t1)
3.
4. # creating a tuple from a list
5. t2 = tuple([1, 6, 9])
6. print('t2=', t2)
7.
8. # creating a tuple from a string
9. t1 = tuple('Java')
10.print('t1=',t1)
11.
12.# creating a tuple from a dictionary
13.t1 = tuple({4: 'four', 5: 'five'})
14.print('t1=',t1)
Output:
t1= ()
t2= (1, 6, 9)
t1= (4, 5)
Python type()
1. List = [4, 5]
2. print(type(List))
3.
4. Dict = {4: 'four', 5: 'five'}
5. print(type(Dict))
6.
7. class Python:
8. a = 0
9.
10.InstanceOfPython = Python()
11.print(type(InstanceOfPython))
Output:
<class 'list'>
<class 'dict'>
<class '__main__.Python'>
1. class Python:
2. def __init__(self, x = 7, y = 9):
3. self.x = x
4. self.y = y
5.
6. InstanceOfPython = Python()
7. print(vars(InstanceOfPython))
Output:
{'y': 9, 'x': 7}
1. numList = [4,5, 6]
2. strList = ['four', 'five', 'six']
3.
4. # No iterables are passed
5. result = zip()
6.
7. # Converting itertor to list
8. resultList = list(result)
9. print(resultList)
10.
11.# Two iterables are passed
12.result = zip(numList, strList)
13.
14.# Converting itertor to set
15.resultSet = set(result)
16.print(resultSet)
Output:
[]
# Function to add 2
# to a number
def add(x):
return x + 2
# 2 to a number
def multiply(x):
return x * 2
multiply(add(5)))
Output:
Adding 2 to 5 and multiplying the result with 2: 14
Explanation
First the add() function is called on input 5. The add() adds 2 to the input and the
output which is 7, is given as the input to multiply() which multiplies it by 2 and
the output is 14
Better way to implement composition
There is a better way to implement the composition of Function. We can create a
special function which can combine any two functions.
# as argument
def add(x):
return x + 2
# Function to multiply 2
def multiply(x):
return x * 2
add_multiply(5))
Output:
Adding 2 to 5 and multiplying the result with 2: 14
# as argument
def add(x):
return x + 2
def multiply(x):
return x * 2
def subtract(x):
return x - 1
# add_subtract_multiply will
add_subtract_multiply = composite_function(composite_function(multiply,
subtract),
add)
add_subtract_multiply(5))
Output:
Adding 2 to 5, then subtracting 1 and multiplying the result with 2: 12
Now we will modify our composite_function to a function that can compose any
number of function instead of two by using reduce() function from functools
library.
def composite_function(*func):
def add(x):
return x + 2
# Function to multiply 2
def multiply(x):
return x * 2
def subtract(x):
return x - 1
add_subtract_multiply = composite_function(multiply,
subtract,
add)
add_subtract_multiply(5))
Output:
R.NISHA M.Sc,M.Phil,B.Ed Page 52
PYTHON
Compositions of Functions
To find the composition of f and g, first find the image of x under f and then find the im
Example1:
1. Let X = {1, 2, 3}
2. Y = {a, b}
3. Z = {5, 6, 7}.
Consider the function f = {(1, a), (2, a), (3, b)} and g = {(a, 5), (b, 7)} as in figure.
Solution:
hofog (n + 1) = (n+1)2
g [(n-1)2 ] = (n-1)2 + 1 = n2 + 1 - 2n + 1 = n2 - 2n + 2.
fog (n - 1) = (n - 1) + 1
f (n) = n2.
Note:
o If f and g are one-to-one, then the function (gof) (gof) is also one-to-one.
o If f and g are onto then the function (gof) (gof) is also onto.
o Composition consistently holds associative property but does not hold commutative
Both arguments and parameters are variables/ constants passed into a function. The
difference is that:
1. Arguments are the variables passed to the function in the function call.
2. Parameters are the variables used in the function definition.
3. The number of arguments and parameters should always be equal except for
the variable length argument list.
Example:
1. def add_func(a,b):
2. sum = a + b
3. return sum
4. num1 = int(input("Enter the value of the first number: "))
5. num2 = int(input("Enter the value of the second number: "))
6. print("Sum of two numbers: ",add_func(num1, num2))
Output:
Mechanism:
Observe that in the above example, num1 and num2 are the values in the function
call with which we called the function. When the function is invoked, a and b are
replaced with num1 and num2, the operation is performed on the arguments, and
the result is returned.
Functions are written to avoid writing frequently used logic again and again. To
write a general logic, we use some variables, which are parameters. They belong
to the function definition. When we need the function while writing our program,
we need to apply the function logic on the variables we used in our program, called
the arguments. We then call the function with the arguments.
Types of Arguments:
1. Positional arguments
2. Keyword arguments
Example:
1. def details(name, age, grade):
2. print("Details of student:", name)
3. print("age: ", age)
4. print("grade: ", grade)
5. details("Raghav", 12, 6)
6. details("Santhosh", grade = 6, age = 12)
Output:
age: 12
grade: 6
age: 12
grade: 6
o The function has three parameters-name, age and grade. So, it accepts three
arguments.
o In the first function call:
1. details("Raghav", 12, 6)
o In the first function call, the order of passing the arguments matter. The
parameters accept the arguments in the given order only.
o In the Second Function Call:
1. details("Santhosh", grade = 6, age = 12)
Here, the first argument, "Santhosh", is passed based on its position to name, and
the next two arguments are passed by assignment to their respective parameters. As
you can observe, here, the position didn't matter.
Important Point:
o Keyword arguments must always follow positional arguments. If not,
Python will raise a syntax error:
1. details("Santhosh", age = 6, 12)
2. ^
3. SyntaxError: positional argument follows keyword argument
Call by Value and Call by Reference:
This is the most important concept on arguments and parameters. Based on the
type of arguments passed to the parameters, there are two methods of invoking/
calling functions-Call by value and Call by reference.
When the values of arguments are passed into parameters in the function, the
values are copied into parameters. This method is called "Call by value".
In this method, arguments and parameters are different and are stored in different
memory locations.
o Changes done on parameters inside the function do not affect the arguments
in the program and vice versa.
o Java functions/ methods follow only Call by value.
When the addresses of the arguments are passed into parameters instead of values,
this method of invoking a function is called "Call by Reference".
o Both the arguments and parameters refer to the same memory location.
o Changes to the parameters (pointers) will affect the values of the arguments
in the program.
o By default, C language follows Call by value, but using the indirection
operator and pointers; we can simulate Call by reference.
Python doesn't use Call by value or Call by reference. It follows a method called
"Call by assignment". In Python, every single entity is an object. Objects are
divided into Mutable and Immutable objects. What happens in Python when we
assign a value to a variable is different from other low-level languages like C or
Java.
a = 20
a = 21
The name stops referring to the memory location with 20 and starts to refer to
another memory location with 21.
In other languages like C, variables are the memory locations that store the values.
Example:
In C:
1. #include<stdio.h>
2. int main()
3. {
4. int a;
5. a = 20;
6. printf("%p", (void*)&a);
7. a = 22;
8. printf("\n%p", (void*)&a);
9. }
Output:
000000000062FE1C
000000000062FE1C
In Python:
1. a = 20
2. print(id(a))
3. a = 21
4. print(id(a))
Output:
140714950863232
140714950863264
o As you can observe: In C, after reassigning the value, the variable is still in
the same memory location, while in Python, it refers to a different memory
location. (id -> address in Python).
o But that's not all. There are other types of objects too.
Example:
Mutable Objects:
1. a = [23, 45, 89]
2. print(id(a))
3. a.append(49)
4. print(id(a))
Output:
2253724439168
2253724439168
Understanding:
A list is immutable, which means we can alter or modify it after creating it. As you
can observe, when created with the name a, it is saved in the address
"2253724439168". Using append(), we altered it by appending another value. It is
still in the same memory location, meaning the same object is modified.
Immutable Objects:
1. a = 20
2. print(id(a))
3. a += 23
4. print(id(a))
Output:
140714950863232
140714950863968
Understanding:
This is the case we discussed before in the tutorial. An int object is immutable,
meaning we can't modify it once created. You might wonder we still added 23 in
the above code. Observe that the object when created is not the same object after
adding. Both are in different memory locations which means they are different
objects.
R.NISHA M.Sc,M.Phil,B.Ed Page 61
PYTHON
So, how are arguments passed to the parameters when a function is invoked?
Example:
1. def details(name, age, grade, marks):
2. marks.append(26)
3. name += " Styles"
4. print("Details of the student: ")
5. print("name: ",name)
6. print("age: ",age)
7. print("grade: ", grade)
8. print("marks: ", marks)
9. name = "Harry"
10.age = 15
11.grade = 10
12.marks = [25, 29, 21, 30]
13.details (name, age, grade, marks)
14.print(grade)
15.print(marks)
Output:
age: 15
grade: 10
10
Understanding:
In the case of marks, it is a list and is mutable. So, it follows "Call by Reference,"
which means, "Changes done on the parameters (pointers) will affect the
values of the arguments in the program". Hence, the change is reflected in the
original program after appending the list in the function definition.
Calling a Function
A function is defined by using the def keyword and giving it a name, specifying
the arguments that must be passed to the function, and structuring the code block.
Code
1. # Defining a function
2. def a_function( string ):
3. "This prints the value of length of string"
4. return len(string)
5.
6. # Calling the function we defined
7. print( "Length of the string Functions is: ", a_function( "Functions" ) )
8. print( "Length of the string Python is: ", a_function( "Python" ) )
Output:
Features of Functions
Syntax
1. def function_name(): # use def keyword to define the function
2. Statement to be executed
3. return statement # return a single value.
Myfun.py
1. def myFun(): # define function name
2. print(" Welcome to JavaTpoint")
3. myFun() # call to print the statement
Output:
Welcome to JavaTpoint
Syntax:
1. def function_name():
2. Statement1
3. function_name() # directly call the function
4.
5. # calling function using built-in function
6. def function_name():
7. str = function_name('john') # assign the function to call the function
8. print(str) # print the statement
Consider the following example to print the Welcome Message using a function in
Python.
CallFun.py
1. def MyFun():
2. print("Hello World")
3. print(" Welcome to the JavaTpoint")
4.
5. MyFun() # Call Function to print the message.
Output:
Hello World
The Python return statement is used to return a value from a function. The user can
only use the return statement in a function. It cannot be used outside of the Python
function. A return statement includes the return keyword and the value that will be
returned after that.
5. .
6. return [expression]
Program 1
1. def adding(x, y):
2. i = x + y
3. return i
4. result = adding(16, 25)
5. print(f'Output of adding(16, 25) function is {result}')
Output
Program 2(a, b):
1. # this function is return the value of (a + b)
2. return a + b
3. def boolean_function(a):
4. # this function is return the Boolean value
5. return bool(a)
6. # calling function
7. flag = adding(2, 3)
8. print("Output of first function is {}".format(flag))
9. flag = boolean_function(9 < 5)
10.print("\nOutput of second function is {}".format(flag))
Output.
In the Python programming language, a user can return multiple values from a
function. The following are the various methods for this.
1. class a:
2. def __init__(self):
3. self.omg = "javatpoint is the best website to learn"
4. self.i = 122
5. # This function will return an object of the class a
6. def test():
7. return a()
8. # Driver code to test the above method
9. z = test()
10.print(z.omg)
11.print(z.i)
Output
Recursion in Python
# Recursive function
def recursive_fibonacci(n):
if n <= 1:
return n
else:
return(recursive_fibonacci(n-1) + recursive_fibonacci(n-2))
n_terms = 10
if n_terms <= 0:
else:
print("Fibonacci series:")
for i in range(n_terms):
print(recursive_fibonacci(i))
Output
Fibonacci series:
0
1
1
2
3
5
8
13
21
34
Example 2: The factorial of 6 is denoted as 6! = 1*2*3*4*5*6 = 720.
Python3
# recursively.
# Recursive function
def recursive_factorial(n):
if n == 1:
return n
else:
return n * recursive_factorial(n-1)
# user input
num = 6
if num < 0:
elif num == 0:
else:
Output
Lambda Functions in Python are anonymous functions, implying they don't have a
name. The def keyword is needed to create a typical function in Python, as we
already know. We can also use the lambda keyword in Python to define an
unnamed function.
This function accepts any count of inputs but only evaluates and returns one
expression.
An example of a lambda function that adds 4 to the input number is shown below.
Code
1. # Code to demonstrate how we can use a lambda function
2. add = lambda num: num + 4
3. print( add(6) )
Output:
R.NISHA M.Sc,M.Phil,B.Ed Page 73
PYTHON
10
The lambda function is "lambda num: num+4" in the given programme. The
parameter is num, and the computed and returned equation is num * 4.
There is no label for this function. It generates a function object associated with the
"add" identifier. We can now refer to it as a standard function. The lambda
statement, "lambda num: num+4", is nearly the same as:
Code
1. def add( num ):
2. return num + 4
3. print( add(6) )
Output:
10
Let's glance at this instance to see how a conventional def defined function differs
from a function defined using the lambda keyword. This program calculates the
reciprocal of a given number:
Code
1. # Python code to show the reciprocal of the given number to highlight the differenc
e between def() and lambda().
2. def reciprocal( num ):
3. return 1 / num
4.
5. lambda_reciprocal = lambda num: 1 / num
6.
7. # using the function defined by def keyword
8. print( "Def keyword: ", reciprocal(6) )
9.
10.# using the function defined by lambda keyword
11.print( "Lambda keyword: ", lambda_reciprocal(6) )
Output:
The filter() method accepts two arguments in Python: a function and an iterable
such as a list.
The function is called for every item of the list, and a new iterable or list is
returned that holds just those elements that returned True when supplied to the
function.
Here's a simple illustration of using the filter() method to return only odd numbers
from a list.
Code
1. # Code to filter odd numbers from a given list
2. list_ = [34, 12, 64, 55, 75, 13, 63]
3.
4. odd_list = list(filter( lambda num: (num % 2 != 0) , list_ ))
5.
6. print(odd_list)
Output:
The function is executed for all of the elements within the list, and a new list is
produced with elements generated by the given function for every item.
The map() method is used to square all the entries in a list in this example.
Code
1. #Code to calculate the square of each number of a list using the map() function
2.
3. numbers_list = [2, 4, 5, 1, 3, 7, 8, 9, 10]
4.
5. squared_list = list(map( lambda num: num ** 2 , numbers_list ))
6.
7. print( squared_list )
Output:
We'll apply the lambda function combined with list comprehension and lambda
keyword with a for loop in this instance. We'll attempt to print the square of
numbers in the range 0 to 11.
Code
1. #Code to calculate square of each number of list using list comprehension
2. squares = [lambda num = num: num ** 2 for num in range(0, 11)]
3.
4. for square in squares:
5. print( square(), end = " ")
Output:
0 1 4 9 16 25 36 49 64 81 100
Code
1. # Code to use lambda function with if-else
2. Minimum = lambda x, y : x if (x < y) else y
3.
4. print(Minimum( 35, 74 ))
Output:
35
Multiple expressions are not allowed in lambda functions, but we can construct 2
lambda functions or more and afterward call the second lambda expression as an
argument to the first. Let's use lambda to discover the third maximum element.
Code
1. # Code to print the third-largest number of the given list using the lambda function
2.
3. my_List = [ [3, 5, 8, 6], [23, 54, 12, 87], [1, 2, 4, 12, 5] ]
4.
5. # sorting every sublist of the above list
6. sort_List = lambda num : ( sorted(n) for n in num )
7.
8. # Getting the third largest number of the sublist
9. third_Largest = lambda num, func : [ l[ len(l) - 2] for l in func(num)]
10.result = third_Largest( my_List, sort_List)
11.
12.print( result )
Output:
[6, 54, 5]