PWP QP Model Answer
PWP QP Model Answer
Scheme – I
Programme Name: Computer/Information Technology Engineering
Programme code: CO/IF
Semester: VI Sem 22616
Course Title: Programming with Python
Marks : 70 Time: 3 Hrs.
……………………………………………………………………………………………………
Instructions:
(1) All questions are compulsory.
(2) Illustrate your answers with neat sketches wherever necessary.
(3) Figures to the right indicate full marks.
(4) Assume suitable data if necessary.
(5) Preferably, write the answers in sequential order.
1
Q.4) Attempt any THREE of the following. (12 Marks)
a) Use of any four methods of tuple in python?
b) Write a python program to read contents of first.txt file and write same content in second.txt
file
c) Show how try…except blocks is used for exception handling in Python with example
d) Write the output for the following if the variable fruit=’banana’:
>>>fruit[:3]
>>>fruit[3:]
>>>fruit[3:3]
>>>fruit[:]
2
Sample Test Paper I
3
Sample Test Paper II
4
Preliminary Examination
Course Title: Programming with Python
……………………………………………………………………………………………………………………………………………………
…
Instructions:
c) Describe Dictionary
a) Explain two Membership and two logical operators in python with appropriate examples.
b) Describe any four methods of lists in Python
a) Write a program to input any two tuples and interchange the tuple variable.
b) Write a python program to read contents of first.txt file and write same content in second.txt
file
c) Show how try…except blocks is used for exception handling in Python with example
>>>fruit[:3]
>>>fruit[3:]
>>>fruit[3:3]
>>>fruit[:]
1. >>> a=[1,2,3]
>>>b=[4,5,6]
>>> c=a+b
2. >>>[1,2,3]*3
3. >>>t=[‘a’,’b’,’c’,’d’,’e’,’f’]
>>>t[1:3]=[‘x’,’y’]
>>>print t
c) Design a class Employee with data members: name, department and salary. Create suitable
BEST OF LUCK
22616
21222
3 Hours / 70 Marks Seat No.
15 minutes extra for each hour
Marks
P.T.O.
22616 [2]
Marks
2. Attempt any THREE of the following: 12
a) Write a program to print following :
1
1 2
1 2 3
1 2 3 4
b) Explain four Buit-in tuple functions python with example.
c) Explain how to use user defined function in python with
example.
d) Write a program to create class EMPLOYEE with ID and
NAME and display its contents.
iii) >>> t1 = [ 3, 5, 6, 7 ]
>>> print ( t1 [2] )
>>> print ( t1 [–1] )
>>> print ( t1 [2 :] )
>>> print ( t1 [ : ] )
……………………………………………………………………………………………………………………
…………………………………
Instructions:
The normal mode is the mode where the scripted and finished . py files are
run in the Python interpreter.
Interactive mode is a command line shell which gives immediate feedback for
each statement, while running previously fed statements in active memory.
c) Describe Dictionary
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
3. The programmer can insert the code inside a „try‟ block and catch the
exception using
„except‟ block
as:
try:
code
except MyException as
me: print me
Here, the object „me‟ contains the message given in the raise statement.
x=4
y=8
list = [1, 2, 3, 4, 5 ];
if ( x in list ):
print("Line 1 - x is available in the given list")
else:
print("Line 1 - x is not available in the given list")
if ( y not in list ):
print("Line 2 - y is not available in the given list")
else:
print("Line 2 - y is available in the given list")
o/p
>>>
a = True
b = False
print(('a and b is',a and b))
print(('a or b is',a or b))
print(('not a is',not a))
o/p
>>>
append() Method
fruits = ['apple', 'banana', 'cherry']
fruits.append("orange")
clear() Method
fruits = ['apple', 'banana', 'cherry', 'orange']
fruits.clear()
sort() Method
cars = ['Ford', 'BMW', 'Volvo']
cars.sort()
pop() Method
fruits = ['apple', 'banana', 'cherry']
fruits.pop(1)
count() Method
fruits = ['apple', 'banana', 'cherry']
x = fruits.count("cherry")
remove() Method
fruits = ['apple', 'banana', 'cherry']
fruits.remove("banana")
i=0
First_Value = 0
Second_Value = 1
else:
First_Value = Second_Value
Second_Value = Next
print(Next)
i=i+1
o/p
a) Write a program to input any two tuples and interchange the tuple
variable.
t = (1,2,3,4,5)
t1 = (13,23,36,47,75)
t,t1=t1,t
print(t)
print(t1)
o/p
(1, 2, 3, 4, 5)
The for loop in Python is used to iterate the statements or a part of the
program several times. It is frequently used to traverse the data structures
like list, tuple, or dictionary.
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
while loop
while expression:
statement(s)
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
o/p-
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
while expression:
while expression:
statement(s)
statement(s)
i=2
while(i < 100):
j=2
while(j <= (i/j)):
if not(i%j): break
j=j+1
if (j > i/j) : print i, " is prime"
i=i+1
r - Read - Default value. Opens a file for reading, error if the file does
not exist
a - Append - Opens a file for appending, creates the file if it does not
exist
w - Write - Opens a file for writing, creates the file if it does not exist
x - Create - Creates the specified file, returns an error if the file exist
Read a File
The read() method is used to read files.
f = open("demofile.txt", "r")
print(f.read())
Read Only Parts of the File
By default the read() method returns the whole text, but you can also
specify how many character you want to return:
f = open("demofile.txt", "r")
print(f.read(12))
Read Lines
You can return one line by using the readline() method:
f = open("test.py", "r")
print(f.readline())
Write File
To write to an existing file, you must add a parameter to
the open() function:
f = open("demofile.txt", "a")
f.write("Now the file has one more line!")
f.close()
f = open("demofile.txt", "w")
f.write("Woops! I have deleted the content!")
f.close()
f = open("demofile.txt", "x")
f.close()
f = open("demofile_1.txt", "a")
f.close()
f = open("demofile_1.txt", "w")
f.close()
class Parent:
def echo(self):
print('I am from Parent class')
p = Parent()
c = Child()
p.echo()
c.echo()
len()
Returns the number of elements in the tuple.
>>> t1=(12,45,43,8,35)
>>> len(t1)
5
max()
If the tuple contains numbers, the heighest number will be returned.
>>> t2=('python', 'java', 'C++')
>>> max(t2)
'python'
min()
If the tuple contains numbers, the lowest number will be returned.
>>> t1=(12,45,43,8,35)
>>> min(t1)
8
count()
Returns the number of times a specified value occurs in a tuple
>>> t1 = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
>>> x = t1.count(5)
>>> print(x)
index()
Searches the tuple for a specified value and returns the position of where it
was found.
>>> t = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
>>> x = t.index(8)
>>> print(x)
file.
File 1.py
with open("1.py") as f:
with open("out.txt", "w") as f1:
for line in f:
f1.write(line)
o/p
with open("1.py") as f:
for line in f:
f1.write(line)
divide(3, 0)
>>>fruit[:3]
>>>fruit[3:]
>>>fruit[3:3]
>>>fruit[:]
ban
ana
banana
Numbers
Integers, floating point numbers and complex numbers fall under Python
numbers category.
t = (5,'program', 1+3j)
s = "This is a string"
s = '''A multiline
string'''
Set is an unordered collection of unique items. Set is defined by values
separated by comma inside braces { }. Items in a set are not ordered.
a = {5,2,3,1,4}
In Python, dictionaries are defined within braces {} with each item being a
pair in the form key:value. Key and value can be of any type.
>>> d = {1:'value','key':2}
def factorial(num):
if num == 1:
return num
else:
return num * factorial(num - 1)
num = int(input("Enter a Number: "))
if num < 0:
print("Factorial cannot be found for negative numbers")
elif num == 0:
print("Factorial of 0 is 1")
else:
print("Factorial of", num, "is: ", factorial(num))
o/p
Enter a Number: 6
1. >>> a=[1,2,3]
>>>b=[4,5,6]
>>> c=a+b
[1, 2, 3, 4, 5, 6]
2. >>>[1,2,3]*3
Nothing but if used print([1,2,3]*3) then
print([1,2,3]*3)
3. >>>t=[‘a’,’b’,’c’,’d’,’e’,’f’]
>>>t[1:3]=[‘x’,’y’]
>>>print t
t=[‘a’,’b’,’c’,’d’,’e’,’f’]
Creating a set
The set can be created by enclosing the comma separated items with the curly
braces. Python also provides the set method which can be used to create the
set by the passed sequence.
Set operations
Python provides discard() method which can be used to remove the items
from the set. also provide the remove() method to remove the items from the
set.
Months.discard("Feb"); #will not give error although the key feb is not availab
le in the set
Months.remove("Jan") #will give an error as the key jan is not available in the
set.
Months.discard("January");
Months.discard("May");
Months.remove("January");
Months.remove("May");
Also use the pop() method to remove the item, this method will always
remove the last item.
Months.pop();
Months.pop();
Python provides the clear() method to remove all the items from the
set.
Months.clear()
The union of two sets are calculated by using the or (|) operator. The union of
the two sets contains the all the items that are present in both the sets.
Days1 = {"Monday","Tuesday","Wednesday","Thursday"}
Days2 = {"Friday","Saturday","Sunday"}
print(Days1|Days2) #printing the union of the sets
Output:
The & (intersection) operator is used to calculate the intersection of the two
sets in python. The intersection of the two sets are given as the set of the
elements that common in both sets.
Output:
{'Martin', 'David'}
The difference of two sets can be calculated by using the subtraction (-)
operator. The resulting set will be obtained by removing all the elements from
set 1 that are present in set 2.
Output:
{'Thursday', 'Wednesday'}
Set comparisons
Python allows us to use the comparison operators i.e., <, >, <=, >= , == with the
sets by using which we can check whether a set is subset, superset, or
equivalent to other set.
The boolean true or false is returned depending upon the items present inside
the sets.
Output:
True
False
False
Simple Inheritance
Inheritance can be achieved by passing the parent class as an argument in the
class definition of child class.
class Parent:
parentname = ""
childname = ""
def show_parent(self):
print(self.parentname)
Example
Two parent classes Father and Mother extended by the child class
named Son.
# Father class created
class Father:
fathername = ""
def show_father(self):
print(self.fathername)
def show_mother(self):
print(self.mothername)
Multilevel Inheritance
In this type of inheritance, a class can inherit from a child class or derived
class.
Eg: Son class inherited from Father and Mother classes which derived
from Family class.
class Family:
def show_family(self):
print("This is our family:")
# Father class inherited from Family
class Father(Family):
fathername = ""
def show_father(self):
print(self.fathername)
# Mother class inherited from Family
class Mother(Family):
mothername = ""
def show_mother(self):
print(self.mothername)
Example
Inside the Father class constructor, the Family class constructor is called and
arguments for the Family class constructor are passed to it.
class Family:
# Parent class constructor
def __init__(self, name):
self.name = name
f = Father("Ashish", 36)
print(f.name)
print(f.age)
Page 1 of 23
The List has the variable The tuple has the fixed length
length
List operations are more error Tuples operations are safe
prone.
Lists can be used to store Tuples are used to store only
homogeneous and heterogeneous elements.
heterogeneous elements.
List is useful for insertion and Tuple is useful for readonly
deletion operations. operations like accessing
elements.
List iteration is slower and is Tuple iteration is faster.
time consuming.
d) Explain Local and Global variable 2M (1m each)
Local Variables: Local variables are those which are initialized
inside a function and belongs only to that particular function. It
cannot be accessed anywhere outside the function
Example:
def f():
# local variable
s = "I love Python Programming"
print(s)
# Driver code
f()
Output
I love Python Programming
Global Variables: The global variables are those which are defined
outside any function and which are accessible throughout the
program i.e. inside and outside of every function.
Example:
# This function uses global variable s
def f():
print("Inside Function", s)
# Global scope
s = "I love Python Programming"
f()
print("Outside Function", s)
Output:
Inside Function I love Python Programming
Outside Function I love Python Programming
e) Define class and object in python 2M (Any suitable
Class: A class is a user-defined blueprint or prototype from which definition: 1M
objects are created. Classes provide a means of bundling data Each)
and functionality together.
Page 2 of 23
f) How to give single and multiline comment in Python 2M (1m each)
Single line comment: Single-line comments are created simply by
beginning a line with the hash (#) character, and they are
automatically terminated by the end of line.
Example:
# print is a statement
print(‘Hello Python’)
for i in range(1,5):
for j in range(1,i+1):
print(j,end=' ')
print()
b) Explain four Buit-in tuple functions in python with example 4M ( 1M for each
function with
example)
Page 3 of 23
c) Explain how to use user defined function in python with example 4M (2m for
• In Python, def keyword is used to declare user defined explanation and
functions. 2m for example)
• The function name with parentheses (), which may or may
not include parameters and arguments and a colon:
• An indented block of statements follows the function
name and arguments which contains the body of the
function.
Syntax:
def function_name():
statements
.
.
Example:
def fun():
print(“User defined function”)
fun()
output:
User defined function
Page 4 of 23
statements
.
.
Example:
def square( x ):
print("Square=",x*x)
# Driver code
square(2)
Output:
Square= 4
d) Write a program to create class EMPLOYEE with ID and NAME 4M (for correct
and display its contents. program and
class employee : logic)
id=0
name=""
def getdata(self,id,name):
self.id=id
self.name=name
def showdata(self):
print("ID :", self.id)
print("Name :", self.name)
e = employee()
e.getdata(11,"Vijay")
e.showdata()
Output:
ID : 11
Name : Vijay
3 Attempt any THREE of the following 12
a) List data types used in Python. Explain any two with 4M (2m for list,
example and 2m for two
Data types in Python programming includes: example)
• Numbers: Represents numeric data to perform
mathematical operations.
• String: Represents text characters, special symbols or
alphanumeric data.
• List: Represents sequential data that the programmer
wishes to sort, merge etc.
• Tuple: Represents sequential data with a little
difference from list.
• Dictionary: Represents a collection of data that
associate a unique key with each value.
• Boolean: Represents truth values (true or false).
Page 5 of 23
Example: For number data types are integers.
>>>a=10
>>>b -10
To determine the type of a variable type() function is used.
>>>type(a)
>>> <class 'int'>
Page 6 of 23
>>> s1="Hello" #string in double quotes
>>> s2='Hi' #string in single quotes
>>> s3="Don't open the door" #single quote string in double
quotes
>>> s4='I said "yipee"' #double quote string in single quotes
>>>type(s1)
<class 'str'>
Page 7 of 23
8. Dictionary: Dictionary is an unordered collection of key-
value pairs. It is the same as the hash table type. The order
of elements in a dictionary is undefined, but we can iterate
over the following:
o The key
o The value
o The items (key-value pairs) in a dictionary.
When we have the large amount of data, the dictionary data
type is used. Items in dictionaries are enclosed in curly braces
{ } and separated by the comma (,). A colon (:) is used to
separate key from value. Values can be assigned and
accessed using square braces ([]).
Example: For dictionary data type.
>>> dic1={1:"First","Second":2}
>>> dic1
{1: 'First', 'Second': 2}
>>> type(dic1)
<class 'dict'>
>>> dic1[3]="Third"
>>> dic1
{1: 'First', 'Second': 2, 3: 'Third'}
>>> dic1.keys()
dict_keys([1, 'Second', 3])
>>> dic1.values()
dict_values(['First', 2, 'Third'])
>>>
b) Explain membership and assignment operators with 4M: 2m for
example membership
Membership Operators: The membership operators in Python are operators and
used to find the existence of a particular element in the sequence, 2m for
and used only with sequences like string, tuple, list, dictionary etc. assignment
Membership operators are used to check an item or an element operators
that is part of a string, a list or a tuple. A membership operator
reduces the effort of searching an element in the list. Python
provides ‘in’ and ‘not in’ operators which are called membership
operators and used to test whether a value or variable is in a
sequence.
Sr. Operator Description Example
No
1 in True if value is >>> x="Hello
found in list or in World"
sequence, and false >>> print('H' in x)
it item is not in list True
or in sequence
2 not in True if value is not >>> x="Hello
found in list or in World"
sequence, and false
Page 8 of 23
it item is in list or in >>> print("Hello"
sequence. not in x)
False
Page 9 of 23
c=c%a
7 **= Performs exponential c **= a is
(power) calculation on equivalent to
operators and assign
value to the left operand. c = c ** a
c) Explain indexing and slicing in list with example 4M: (2m for
Indexing: An individual item in the list can be referenced by indexing and 2m
using an index, which is an integer number that indicates the for slicing)
relative position of the item in the list.
There are various ways in which we can access the elements
of a list some as them are given below:
1. List Index: We can use the index operator [] to access an
item in a list. Index starts from 0. So, a list having 5 elements
will have index from 0 to 4.
Example: For list index in list.
>>> list1=[10,20,30,40,50]
>>> list1[0]
10
>>> list1[3:] # list[m:] will return elements indexed from mth
index to last index
[40, 50]
>>>list1[:4] # list[:n] will return elements indexed from first
index to n-1th index
[10, 20, 30, 40]
>>> list1[1:3] # list[m:n] will return elements indexed from m
to n-1.
[20, 30]
>>> list1[5]
Traceback (most recent call last):
File "<pyshell#71>", line 1, in <module>
list1[5]
IndexError: list index out of range
2. Negative Indexing: Python allows negative indexing for its
sequences. The index of −1 refers to the last item, −2 to the
second last item and so on.
Example: For negative indexing in list.
>>> list2=['p','y','t','h','o','n']
>>> list2[-1]
'n'
>>> list2[-6]
'p'
>>> list2[-3:]
Page 10 of 23
['h', 'o', 'n']
>>> list2[-7]
Traceback (most recent call last):
File "<pyshell#76>", line 1, in <module>
list2[-7]
IndexError: list index out of range
operation.py:
import calculation
print(calculation.add(1,2))
print(calculation.sub(4,2))
Output:
3
2
Page 11 of 23
Ans:
1)
>>> dict1={1:"Vijay",2:"Santosh",3:"Yogita"}
>>>print(dict1)
{1: 'Vijay', 2: 'Santosh', 3: 'Yogita'}
ii)
>>>dict1[2]="Shreyas"
>>>print(dict1)
{1: 'Vijay', 2: 'Shreyas', 3: 'Yogita'}
iii)
>>>dict1.pop(1)
‘Vijay'
>>>print(dict1)
{2: 'Shreyas', 3: 'Yogita'}
b) Explain decision making statements If-else, if-elif-else with 4M (2m for if-
example else and 2m for
The if-else statement: if statements executes when the if-elif-else)
conditions following if is true and it does nothing when the
condition is false. The if-else statement takes care of a true
as well as false condition.
Syntax-1: Or Syntax-2:
If condition: If condition:
Statement(s) If_Block
else: else:
Statement(s) else_Block
Example:
i=20
if(i<15):
print(" less than 15")
else:
print("greater than 15")
output:
greater than 15
Concept Diagram:
Page 12 of 23
if-elif-else (ladder) statements: Here, a user can decide among
multiple options. The if statements are executed from the top
down. As soon as one of the conditions controlling the if is true,
the statement associated with that if is executed, and the rest of
the ladder is bypassed. If none of the conditions is true, then the
final else statement will be executed.
Syntax:
if (condition-1):
statement
elif (condition-2):
statements
.
.
elif(condition-n):
statements
else:
statements
Example:
Example:
i = 20
if (i == 10):
print ("i is 10")
elif (i == 15):
print ("i is 15")
elif (i == 20):
print ("i is 20")
else:
print ("i is not present")
output:
i is 20
Concept Diagram:
Page 13 of 23
c) Explain use of format() method with example 4M (2m for use
The format() method formats the specified value(s) and insert and 2m for
them inside the string's placeholder. example)
The placeholder is defined using curly brackets: {}.
The format() method returns the formatted string.
Syntax
string.format(value1, value2...)
Example:
#named indexes:
>>>txt1 = ("My name is {fname}, I'm {age}".format(fname =
"abc", age = 36))
>>>print(txt1)
My name is abc, I'm 36
#numbered indexes:
>>>txt2 =( "My name is {0}, I'm {1}".format("xyz",36))
>>>print(txt2)
My name is xyz, I'm 36
#empty placeholders:
>>>txt3 = ("My name is {}, I'm {}".format("pqr",36))
>>>print(txt3)
My name is pqr, I'm 36
d) Explain building blocks of python 4M
Character set: All characters that python can recognize. The
below table illustrates the Python character set along with
examples.
character Set Examples
Letters: Upper case and A-Z,a-z
lower case english
alphabets
Digits: all digits 0-9
Special symbols space,+,-,**,*,%,//,/,==,!=,>,<
Whitespaces Blank space,tabs
Other unicode characters All ASCII and Unicode characters
Tokens: Tokens in python are building blocks of the Python
programming language. The role letters and words play for the
English language, Similar to role token play for a python
programming language.
Python has the following tokens:
1)keywords
2)identifiers
3)literals
a)String literals
b)Numeric literals
c)Boolean Literals
d)Special literal None
Tokens Example
Keywords: Words that are False,True,if,elif,else,for,
already defined and convey a while,pass,continue,lambda,
Page 14 of 23
special meaning to the return,finally,import,def
language
compiler/interpreter
Identifiers: names given to def square,num=20,
different parts of program a_lst=[1,2,3];
like variables, functions, here square,num and a_lst are
object, class, names given to identifiers.
different datatypes.
Literals/Constants: Data String: ‘Mayank‘,’abc‘,’anish‘;
items that have fixed values Numeric: 1,1.2,4,-3.95;
Boolean: True,False
Special literal None; meaning nothing
e) Write a program illustrating use of user defined package in 4M (2m for
python defining
A package is a hierarchical file directory structure that defines a package and 2m
single Python application environment that consists of modules for import
and subpackages and sub-subpackages, and so on. package in
Packages allow for a hierarchical structuring of the module program)
namespace using dot notation.
Creating a package is quite straightforward, since it makes use of
the operating system’s inherent hierarchical file structure.
Consider the following arrangement:
mod2.py
def m2():
print("second module")
Syntax-1
import <module_name>[, <module_name> ...]
Example:
>>>import pkg.mod1, pkg.mod2
>>> pkg.mod1.m1()
first module
Page 15 of 23
Syntax-2:
from <module_name> import <name(s)>
Example:
>>> from pkg.mod1 import m1
>>> m1()
First module
>>>
Syntax-3:
from <module_name> import <name> as <alt_name>
Example:
>>> from pkg.mod1 import m1 as module
>>> module()
first module
Page 16 of 23
Method overloading is a concept in which a method in a class
performs operations according to the parameters passed to
it.
As in other languages we can write a program having two
methods with same name but with different number of
arguments or order of arguments but in python if we will try
to do the same we will get the following issue with method
overloading in Python:
# to calculate area of rectangle
def area(length, breadth):
calc = length * breadth
print calc
#to calculate area of square
def area(size):
calc = size * size
print calc
area(3)
area(4,5)
Output:
9
TypeError: area() takes exactly 1 argument (2 given)
Python does not support method overloading, that is, it is
not possible to define more than one method with the
same name in a class in Python.
This is because method arguments in python do not have a
type. A method accepting one argument can be called with
an integer value, a string or a double as shown in next
example.
class Demo:
def method(self, a):
print(a)
obj= Demo()
obj.method(50)
obj.method('Meenakshi')
obj.method(100.2)
Output:
50
Meenakshi
100.2
Same method works for three different data types. Thus, we
cannot define two methods with the same name and same
number of arguments but having different type as shown in
the above example. They will be treated as the same
method.
It is clear that method overloading is not supported in python
but that does not mean that we cannot call a method with
different number of arguments. There are a couple of
Page 17 of 23
alternatives available in python that make it possible to call
the same method but with different number of arguments.
c) Write a program to open a file in write mode and append 6M for any
some content at the end of file program with
file1 = open("myfile.txt", "w") suitable logic
L = ["This is Delhi \n", "This is Paris \n", "This is London"]
file1.writelines(L)
file1.close()
# Append-adds at last
# append mode
file1 = open("myfile.txt", "a")
Output:
Output of Readlines after appending
This is Delhi
This is Paris
This is London
TodayTomorrow
Page 18 of 23
same type. Arrays can be made up of any number of
dimensions.
• In NumPy, dimensions are called axes. Each
dimension of an array has a length which is the total
number of elements in that direction.
• The size of an array is the total number of elements
contained in an array in all the dimension. The size of
NumPy arrays are fixed; once created it cannot be
changed again.
• Numpy arrays are great alternatives to Python Lists.
Some of the key advantages of Numpy arrays are that
they are fast, easy to work with, and give users the
opportunity to perform calculations across entire
arrays.
• A one dimensional array has one axis indicated by
Axis-0. That axis has five elements in it, so we say it
has length of five.
• A two dimensional array is made up of rows and
columns. All rows are indicated by Axis-0 and all
columns are indicated by Axis-1. If Axis-0 in two
dimensional array has three elements, so its length it
three and Axis-1 has six elements, so its length is six.
Example:
For NumPy with array object.
>>> import numpy as np
>>> a=np.array([1,2,3]) # one dimensional array
>>> print(a)
[1 2 3]
>>> arr=np.array([[1,2,3],[4,5,6]]) # two dimensional array
>>> print(arr)
[[1 2 3]
[4 5 6]]
Page 19 of 23
>>> type(arr)
<class 'numpy.ndarray'>
>>> print("No. of dimension: ", arr.ndim)
No. of dimension: 2
>>> print("Shape of array: ", arr.shape)
Shape of array: (2, 3)
>> >print("size of array: ", arr.size)
size of array: 6
>>> print("Type of elements in array: ", arr.dtype)
Type of elements in array: int32
>>> print("No of bytes:", arr.nbytes)
No of bytes: 24
b) Write a program to implement the concept of inheritance 6M for any
in python suitable
• In inheritance objects of one class procure the example of
properties of objects of another class. inheritance
• Inheritance provide code usability, which means that
some of the new features can be added to the code
while using the existing code.
• The mechanism of designing or constructing classes
from other classes is called inheritance.
• The new class is called derived class or child class and
the class from which this derived class has been
inherited is the base class or parent class.
• In inheritance, the child class acquires the properties
and can access all the data members and functions
defined in the parent class. A child class can also
provide its specific implementation to the functions
of the parent class.
Syntax:
class A:
# properties of class A
class B(A):
# class B inheriting property of class A
# more properties of class B
Page 20 of 23
car1.disp_price()
Output:
Name= Maruti
Price=$ 2000
Page 21 of 23
• There can be one or more except blocks. Multiple
except blocks with different exception names can be
chained together.
• The except blocks are evaluated from top to bottom
in the code, but only one except block is executed for
each exception that is thrown.
• The first except block that specifies the exact
exception name of the thrown exception is executed.
If no except block specifies a matching exception
name then an except block that does not have an
exception name is selected, if one is present in the
code.
• For handling exception in Python, the exception
handler block needs to be written which consists of
set of statements that need to be executed according
to raised exception. There are three blocks that are
used in the exception handling process, namely, try,
except and finally.
Syntax:
try:
D the operations here
......................
except Exception1:
If there is Exception1, then execute this block.
except Exception2:
If there is Exception2, then execute this block.
......................
else:
If there is no exception then execute this block.
Page 22 of 23
except IOError:
print ("Error: can\'t find file or read data")
else:
print ("Written content in the file successfully")
fh.close()
Page 23 of 23
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
WINTER – 2022 EXAMINATION
Subject Name: Programming with Python Model Answer Subject Code: 22616
Important Instructions to examiners: XXXXX
1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme.
2) The model answer and the answer written by candidate may vary but the examiner may try to assess the
understanding level of the candidate.
3) The language errors such as grammatical, spelling errors should not be given more Importance (Not applicable for
subject English and Communication Skills.
4) While assessing figures, examiner may give credit for principal components indicated in the figure. The figures
drawn by candidate and model answer may vary. The examiner may give credit for any equivalent figure drawn.
5) Credits may be given step wise for numerical problems. In some cases, the assumed constant values may vary and
there may be some difference in the candidate’s answers and model answer.
6) In case of some questions credit may be given by judgement on part of examiner of relevant answer based on
candidate’s understanding.
7) For programming language papers, credit may be given to any other program based on equivalent concept.
8) As per the policy decision of Maharashtra State Government, teaching in English/Marathi and Bilingual (English +
Marathi) medium is introduced at first year of AICTE diploma Programme from academic year 2021-2022. Hence if
the students in first year (first and second semesters) write answers in Marathi or bilingual language (English
+Marathi), the Examiner shall consider the same and assess the answer based on matching of concepts with
model answer.
Operator Meaning
== Equal to
Page No: 1 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
!= Not Equal to
< Less than
> Greater than
<= Less than and Equal to
>= Greater than and Equal to
c) Describe Tuples in Python. 2M
Ans The lambda function, which is also called anonymous function. A lambda function can 2M for use
take any number of arguments, but can only have one expression.
Syntax: lambda arguments : expression
Example: x= lambda a,b : a*b
Print(x(10,5)
Output: 50
e) Write syntax of defining class in Python. 2M
Ans Indentation refers to the spaces at the beginning of a code line. Python indentation 2M
refers to adding white space before a statement to a particular block of code. In another
word, all the statements with the same space to the right, belong to the same code
block.
Page No: 2 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Ans Bitwise operators acts on bits and performs bit by bit operation. Assume a=10 (1010) 4M (for any
and b=4 (0100) four, 1M each)
Operator Meaning Description Example
& Binary AND This operation a &b =
performs AND 1010 &
operation 0100 =
between 0000 =0
operands.
Operator copies a
bit, to the result,
if it exists in both
operands
| Binary OR This operation a|b = 1010 |
performs OR 0100 =
operation 1110 = 14
between
operands. It
copies a bit, if it
exists in either
operand.
^ Binary XOR This operation a^b=1010 ^
performs XOR 0100 =
operations 1110 =14
between
operands. It
copies the bit, if it
is set in one
operand but not
both.
~ Binary Ones It is unary ~a= ~ 1010
Complement operator and has = 0101
the effect of
'flipping' bits i.e.
opposite the bits
of operand.
<< Binary Left The left operand's a<<2 =
Page No: 3 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Shift value is moved 1010 << 2
left by the =101000 =
number of bits 40
specified by the
right operand.
>> Binary Right The left operand's a>>2 =
Shift value is moved 1010 >> 2
right by the =0010 = 2
number of bits
specified by the
right operand.
b) Write any four methods of dictionary. 4M
Page No: 4 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Ans Global variables: global variables can be accessed throughout the program 4M (2M for
body by all functions. explanation
Local variables: local variables can be accessed only inside the function in and 2M for
which they are declared example)
Concept Diagram:
A global variable (x) can be reached and modified anywhere in the code, local
variable (z) exists only in block 3.
Example:
g=10 #global variable g
def test():
l=20 #local variable l
print("local variable=",l)
# accessing global variable
print("Global variable=",g)
Page No: 5 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
test()
print("global variable=",g)
output:
local variable= 20
Global variable= 10
global variable= 10
output:
i is 20
(Similar type of program can consider)
Page No: 6 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
2) Deleting Values in List
The pop() method in Python is used to remove a particular item/element from the given
index in the list. The pop() method removes and returns the last item if index is not
provided. This helps us implement lists as stacks (first in, last out data structure).
>>> list= [10, 20, 30, 40]
>>> list
[10, 20, 30, 40]
30
>>> list
[10, 20, 40]
>>> list.pop()
40
>>> list
[10, 30]
We can delete one or more items from a list using the keyword del. It can even delete
the list entirely. But it does not store the value for further use
>>> list= [10, 20, 30, 40]
>>> list
[10, 20, 30, 40]
>>> del (list[1]) # del() with index
>>> list
[10, 30, 40]
>>> del list[2] # del with index
>>> list
[10, 30]
The remove() method in Python issued to remove a particular element from the list. We
use the remove() method if we know the item that we want to remove or delete from the
list (but not the index).
>>> list=[10,"one",20,"two"]
>>> list.remove(20)
>>> list
[10, 'one', 'two']
>>> list.remove("one")
>>> list
[10, 'two']
>>>
3. Updating Lists:
• List are mutable, meaning their elements can be changed or updated unlike string or
tuple.
• Mutability is the ability for certain types of data to be changed without entirely
recreating it. Using
mutable data types can allow programs to operate quickly and efficiently.
Page No: 7 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
• Multiple values can be added into list. We can use assignment operator (=) to change
an item or a
range of items.
• We can update items of the list by simply assigning the value at the particular index
position. We
can also remove the items from the list using remove() or pop() or del statement.
4 Indexing
There are various ways in which we can access the elements of a list.
List Index: We can use the index operator [] to access an item in a list. Index starts
from 0. So, a list having 5 elements will have index from 0 to 4.
Example:
>>> list1=[10,20,30,40,50]
>>> list1[0]
10
>>> list1[4]
50
>>> list1[1:3]
[20, 30]
5. List Slicing
The slicing operator returns a subset of a list called slice by specifying two indices, i.e.
start and end.
Syntax:
List_variable[start_index:end_index]
Example:
>>> l1=([10,20,30,40,50])
>>> l1[1:4]
[20, 30, 40]
Page No: 8 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Ans • Method overloading is the ability to define the method with the same name but with a Explanation
different number of arguments and data types. 1 M and
• With this ability one method can perform different tasks, depending on the number of Example 3 M
arguments or the types of the arguments given.
• Method overloading is a concept in which a method in a class performs operations
according to the parameters passed to it.
Example: With a method to perform different operations using method overloading.
class operation:
def add(self,a,b):
return a+b
op1=operation()
# To add two integer numbers
print("Addition of integer numbers=",op1.add(10,20))
# To add two floting point numbers
print("Addition of integer numbers=",op1.add(11.12,12.13))
# To add two strings
print("Addition of integer numbers=",op1.add("Hello","Python"))
Output:
Addition of integer numbers= 30
Addition of integer numbers= 23.25
Addition of integer numbers= HelloPython
Python does not support method overloading, that is, it is not possible to define more
than one method with the same name in a class in Python.
• This is because method arguments in python do not have a type. A method accepting
one argument can be called with an integer value, a string or a double as shown in next
example.
Page No: 9 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
class Demo:
def method(self, a):
print(a)
obj= Demo()
obj.method(50)
obj.method('Meenakshi')
obj.method(100.2)
Output:
50
Meenakshi
100.2
d) Explain how try-catch block is used for exception handling in python. 4M
Ans • In Python, exceptions can be handled using a try statement. A try block Proper
consisting of one or more statements is used by programmers to partition code explanation
that might be affected by an exception.
• A critical operation which can raise exception is placed inside the try clause and the 4 M
code that handles exception is written in except clause.
• The associated except blocks are used to handle any resulting exceptions thrown in
the try block. That is we want the try block to succeed and if it does not succeed, we
want to control to pass to the catch block.
• If any statement within the try block throws an exception, control immediately shifts
to the catch block. If no exception is thrown in the try block, the catch block is skipped.
• There can be one or more except blocks. Multiple except blocks with different
exception names can be chained together.
• The except blocks are evaluated from top to bottom in the code, but only one except
block is executed for each exception that is thrown.
• The first except block that specifies the exact exception name of the thrown exception
is executed. If no except block specifies a matching exception name then an except
block that does not have an exception name is selected, if one is present in the code.
• For handling exception in Python, the exception handler block needs to be written
which consists of set of statements that need to be executed according to raised
exception. There are three blocks that are used in the exception handling process,
namely, try, except and finally.
1. try Block: A set of statements that may cause error during runtime are to be written
in the try
block.
2. except Block: It is written to display the execution details to the user when certain
exception occurs in the program. The except block executed only when a certain type as
exception occurs in the execution of statements written in the try block.
Syntax:
try:
D the operations here
......................
Page No: 10 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
except Exception1:
If there is Exception1, then execute this block.
except Exception2:
If there is Exception2, then execute this block.
......................
else:
If there is no exception then execute this block.
List is a collection of index values pairs Dictionary is a hashed structure of 1 M for 1 point
as that of array in c++. key and value pairs.
The indices of list are integers starting The keys of dictionary can be of any
from 0. data type.
The elements are accessed via indices. The elements are accessed via key-
values.
Page No: 11 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Ans Python Command line arguments are input parameters passed to the script when 1 M for
executing them. Almost all programming language provide support for command line definition and
arguments. Then we also have command line options to set some specific options for 3 M for
the program. program
There are many options to read python command line arguments. The three most
common ones are:
Python sys.argv
Python getopt module
Python argparse module
Program:
import sys
x=int(sys.argv[1])
y=int(sys.argv[2])
sum=x+y
print("The addition is :",sum)
Output:
C:\Python34\python sum.py 6 4
The addition is : 10
c) Write python code to count frequency of each characters in a given file. 4M
1. Integers (int Data Type): An integer is a whole number that can be positive (+) or
negative (−). Integers can be of any length, it is only limited by the memory available.
Example: For number data types are integers.
>>>a=10
>>>b -10
To determine the type of a variable type() function is used.
>>>type(a)
>>> <class 'int'>
2. Boolean (Bool Data Type: The simplest build-in type in Python is the bool type, it
represents the truth-values False and True. Internally the true value is represented as
1 and false is 0.
For example
>>>a = 18 > 5
>>>print(a)
True
b=2>3
print(b)
False
4. Complex Numbers (Complex Data Type): Complex numbers are written in the form,
x + yj, where x is the real part and y is the imaginary part.
Example:
Complex number.
>>>x = 3+4j
>>>print(x.real)
3.0
>>>print(x.imag)
4.0
Page No: 13 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
5. String Data Type: String is a collection of group of characters. Strings are identified
as a contiguous set of characters enclosed in single quotes (' ') or double quotes (" ").
Any letter, a number or a symbol could be a part of the string. Strings are
unchangeable (immutable). Once a string is created, it cannot be modified.
Example: For string data type.
>>> s1="Hello" #string in double quotes
>>> s2='Hi' #string in single quotes
>>> s3="Don't open the door" #single quote string in double quotes
>>> s4='I said "yipee"' #double quote string in single quotes
>>>type(s1)
<class 'str'>
6. List Data Type: List is an ordered sequence of items. It is one of the most used
datatype in Python and is very flexible.
List can contain heterogeneous values such as integers, floats, strings, tuples, lists and
dictionaries but they are commonly used to store collections of homogeneous objects.
The list datatype in Python programming is just like an array that can store a group of
elements and we can refer to these elements using a single name. Declaring a list is
pretty straight forward. Items separated by commas ( , ) are enclosed within brackets [
].
Example: For list.
>>> first=[10, 20, 30] # homogenous values in list
>>> second=["One","Two","Three"] # homogenous values in list
>>> first
[10, 20, 30]
>>> second
['One', 'Two', 'Three']
>>> first + second # prints the concatenated lists
[10, 20, 30, 'One', 'Two', 'Three']
7. Tuple Data Type: Tuple is an ordered sequence of items same as list. The only
difference is that tuples are immutable.
Tuples once created cannot be modified. It is defined within parentheses ( ) where
items are separated by commas ( , ).
A tuple data type in python programming is similar to a list data type, which also
contains heterogeneous items/elements.
Example: For tuple.
>>> a=(10,'abc',1+3j)
>>> a
(10, 'abc', (1+3j))
>>> a[0]
10
>>> a[0]=20
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
Page No: 14 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
8. Dictionary: Dictionary is an unordered collection of key-value pairs. It is the same as
the hash table type. The order of elements in a dictionary is undefined, but we can
iterate over the following:
o The key
o The value
o The items (key-value pairs) in a dictionary.
When we have the large amount of data, the dictionary data type is used. Items in
dictionaries are enclosed in curly braces { } and separated by the comma (,). A colon (:)
is used to separate key from value. Values can be assigned and accessed using square
braces ([]).
Example: For dictionary data type.
>>> dic1={1:"First","Second":2}
>>> dic1
{1: 'First', 'Second': 2}
>>> type(dic1)
<class 'dict'>
>>> dic1[3]="Third"
>>> dic1
{1: 'First', 'Second': 2, 3: 'Third'}
>>> dic1.keys()
dict_keys([1, 'Second', 3])
>>> dic1.values()
dict_values(['First', 2, 'Third'])
>>>
Ans A module allows you to logically organize your Python code. Grouping related code 2 M for
into a module makes the code easier to understand and use. A module is a Python module
object with arbitrarily named attributes that you can bind and reference. explanation
Simply, a module is a file consisting of Python code. A module can define functions,
classes and variables. A module can also include runnable code.
Example
The Python code for a module named aname normally resides in a file named
aname.py. Here's an example of a simple module, support.py 2 M for
creating
def print_func( par ): module
print "Hello : ", par
return
To create a module just save the code you want in a file with the file extension .py:
Example
Save this code in a file named mymodule.py
def greeting(name):
print("Hello, " + name)
Now we can use the module we just created, by using the import statement: 2 M for
accessing/using
Page No: 15 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Example module
Import the module named mymodule, and call the greeting function:
import mymodule
mymodule.greeting("ABC")
c) Write python program to perform following operations on Set (Instead of 6M
Tuple)
i) Create set
ii) Access set Element
iii) Update set
iv) Delete set
output: 2M-delete
{50, 20, 40, 10, 30} Tuple)
{50, 20, 40, 10, 60, 30}
{'B', 50, 20, 'A', 40, 10, 60, 30}
{'B', 50, 20, 'A', 40, 10, 60}
{'B', 50, 20, 40, 10, 60}
{50, 20, 40, 10, 60}
output:
(10, 20, 30, 40, 50)
20
(10, 20, 30)
Traceback (most recent call last):
File "C:\Users\Vijay Patil\AppData\Local\Programs\Python\Python310\temp.py", line
9, in <module>
print (tuple1)
NameError: name 'tuple1' is not defined. Did you mean: 'tuple'?
Ans The data types in Python are divided in two categories: 3m for mutable
Immutable data types – Values cannot be changed. Immutable data types in Python are data structure
1. Numbers and 3m for
2. String immutable data
3. Tuple structure
Mutable data types – Values can be changed. Mutable data types in Python are:
1. List
2. Dictionaries
3. Sets
1. Numbers
Python supports integers, floats and complex numbers.
An integer is a number without decimal point for example 5, 6, 10 etc.
A float is a number with decimal point for example 6.7, 6.0, 10.99 etc.
A complex number has a real and imaginary part for example 7+8j, 8+11j etc.
Page No: 17 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Example:
# int
num1 = 10
num2 = 100
# float
a = 10.5
b = 8.9
# complex numbers
x = 3 + 4j
y = 9 + 8j
2. String
A string is usually a bit of text (sequence of characters). In Python we use ” (double
quotes) or ‘ (single quotes) to represent a string.
There are several ways to create strings in Python:
1. We can use ‘ (single quotes), see the string str in the following code.
2. We can use ” (double quotes), see the string str2 in the source code below.
3. Triple double quotes “”” and triple single quotes ”’ are used for creating multi-line
strings in Python.
Example:
str = 'beginnersbook'
str2 = "Chaitanya"
# multi-line string
str3 = """Welcome to
Pythonsbook"""
3. Tuple
In Python, a tuple is similar to List except that the objects in tuple are immutable which
means we cannot change the elements of a tuple once assigned. On the other hand, we
can change the elements of a list.
To create a tuple in Python, place all the elements in a () parenthesis, separated by
commas. A tuple can have heterogeneous data items, a tuple can have string and list as
data items as well.
Example
# tuple of strings
my_data = ("hi", "hello", "bye")
Page No: 18 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
4. List
A list is a data type that allows you to store various types data in it. List is a compound
data type which means you can have different-2 data types under a list, for example we
can have integer, float and string items in a same list.
To create a list all you have to do is to place the items inside a square bracket []
separated by comma ,.`
Example:
# list of floats
num_list = [11.22, 9.9, 78.34, 12.0]
# an empty list
nodata_list = []
5. Dictionaries
Dictionary is a mutable data type in Python. A python dictionary is a collection of key
and value pairs separated by a colon (:), enclosed in curly braces {}.
Left side of the colon(:) is the key and right side of the : is the value.
mydict = {'StuName': 'Ajeet', 'StuAge': 30, 'StuCity': 'Agra'}
6. Sets
Set is an unordered and unindexed collection of items in Python. Unordered means
when we display the elements of a set, it will come out in a random order. Unindexed
means, we cannot access the elements of a set using the indexes like we can do in list
and tuples.
The elements of a set are defined inside curly brackets and are separated by commas.
For example –
myset = {1, 2, 3, 4, "hello"}
b) Design a class student with data members; Name, roll number address. 6M
Page No: 19 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
Create suitable method for reading and printing students details.
Ans class Student: 2 M for class
definition
def getStudentDetails(self):
self.rollno=input("Enter Roll Number : ")
self.name = input("Enter Name : ")
Output: 2 M to create
objects
Enter Roll Number : 001
Enter Name : ABC
Enter Address : New York
Student Details :
001 ABC New York
(Any suitable program can consider)
c) Create a parent class named Animals and a child class Herbivorous which will 6M
extend the class Animal. In the child class Herbivorous over side the method feed (
). Create a object
Ans # parent class 2 M to create
class Animal: parent class
# properties
multicellular = True
# Eukaryotic means Cells with Nucleus
eukaryotic = True
# function feed
def feed(self):
print("I eat food.")
2 M to create
# child class object and call
class Herbivorous(Animal): function
Page No: 20 | 21
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
__________________________________________________________________________________________________
# function feed
def feed(self):
print("I eat only plants. I am vegetarian.")
herbi = Herbivorous()
herbi.feed()
# calling some other function
herbi.breathe()
Output:
I eat only plants. I am vegetarian.
I breathe oxygen.
Page No: 21 | 21