Lists
 Creating Lists,
 Accessing the Elements of a List,
 Negative List Indices,
 List Slicing [Start: end], List Slicing with Step Size,
 Python Inbuilt Functions for Lists,
 The List Operator, List Comprehensions,
 List Methods, List and Strings, Splitting a String in List,
 Passing List to a Function, Returning List from a Function.
Prepared by Dr. C. Sreedhar
# Lists are used to store multiple items in a single variable.
# List items can be of similiar items, different items,duplicates
list1 = ["cse", "cst", "csbs"]
list2 = [10, 50, 60, 80, 40]
list3 = [True, False, False]
list4 = ["cse4a","cse4b","cse4a","ece"]
print(list1)
print(list2)
print(list3)
print(list4[1])
['cse', 'cst', 'csbs']
[10, 50, 60, 80, 40]
[True, False, False]
cse4b
Prepared by Dr. C. Sreedhar
# Accept list items from user uslng list() constructor
l1=input(list())
print(l1)
# Access the elements using index [ ] operator
list4 = ["cse4a","cse4b","cse4a","ece"]
print(list4[2])
cse4b
# Slicing the list using
#Name_of_Variable_of_a_List[Start_Index: End_Index]
list4 = ["cse4a","cse4b","cse4a","ece"]
['cse4b',
'cse4a']
Prepared by Dr. C. Sreedhar
Prepared by Dr. C. Sreedhar
Lists in python
 Lists are used to store multiple items in a single variable.
 List items can be of any data type. Example:
 list1 = ["cse", "cst", "csbs"]
 list2 = [10, 50, 60, 80, 40]
 list3 = [True, False, False]
 List allows duplicates. Example:
 cse4a = ["ram", "shyam", "ram", "sree", "dennis"]
 print(cse4a)
 List allows different data types. Example
Prepared by Dr. C. Sreedhar
Creating a list with w/o using constructor of the list class
 Lists can be created in Python with constructor and w/o constructor
Using list Constructor
 Create an empty list. L1 = list();
 Create a list with any three integer elements, such as 10, 20 and 30.
L2 = list([10,20,30])
 Create a list with three string elements, such as “Apple”, “Banana” and
“Grapes”. L3 = list([“Apple”,”Banana”,”Grapes”])
 Create a list using inbuilt range() function. L4 = list(range(0,6))
 Create a list with inbuilt characters X, Y and Z. L5=list(“xyz”)
 Create a list with any three integer elements, such as 10, 20 and 30.
L1=[10,20,30]
Prepared by Dr. C. Sreedhar
ACCESSING THE ELEMENTS OF A LIST
 index [] operator is used to access them. The syntax is:
Name_of_Variable_of_a_List[index]
 L1=([10,20,30,40,50])
>>> List1=[10,20,30,40,50,60]
>>> List1[-3]
Output
40
Prepared by Dr. C. Sreedhar
LIST SLICING [START: END]
 Name_of_Variable_of_a_List[Start_Index: End_Index]
>>> L1=([10,20,30,40,50])
>>> L1[1:4]
Output
20,30,40
>>> L1[2:5]
Output
Prepared by Dr. C. Sreedhar
LIST SLICING WITH STEP SIZE
 List_Name[Start_Index:End_Index:Step_Size]
>>>MyList1=[“CSE”,1,”CST”,2,”ECE”,3,”EEE”]
>>>New_List1=MyList1[0:6:2]
print(New_List1)
Output
[‘CSE’, ‘CST’, ‘ECE’] >>> List1=[“Python”,450,”C”,300,”,C++”,670]
>>> List1[0:6:3]
Output
Prepared by Dr. C. Sreedhar
PYTHON INBUILT FUNCTIONS FOR LIST
Prepared by Dr. C. Sreedhar
 + Operator: The concatenation operator is used to join two lists.
 a=[1,2,3] b=[4,5,6] a+b # [1, 2, 3, 4, 5, 6]
 * Operator: The multiplication operator is used to replicate the
elements of a list.
 List1=[10,20] List2=[20,30] List3=2*List1 #[10, 20, 10, 20]
 in Operator: The in operator used to determine whether an element
is in a list. It returns True if the element is present and False if the
element is absent in the list.
 List1= [10,20]
 >>> 40 in List1
 False
LIST OPERATOR Prepared by Dr. C. Sreedhar
LIST OPERATOR
 isOperator
 >>> A=’Microsoft’
 >>> B=’Microsoft’
 >>> A is B
 True
 >>> A=[‘A’,’B’,’C’]
 >>> B=[‘A’,’B’,’C’]
 >>> A is B #Check if two lists refer to the same Object
 False
Prepared by Dr. C. Sreedhar
del Operator
Lst=[10,20,30,40,50,60,70]
>>> del Lst[2] #Removes 3rd element from the List
>>> Lst
[10, 20, 40, 50, 60, 70]
Lst=[10,20,30,40,50,60,70]
>>> del Lst[-1]
>>> Lst #Removes last element from the List
[10, 20, 30, 40, 50, 60]
>>> Lst=[10,20,30,40,50,60,70]
>>> del Lst[2:5] #Removes element from index position 2 to 4
>>> Lst
[10, 20, 60, 70]
>>> Lst=[10,20,30,40,50,60,70]
>>> del Lst[:] #Removes all the element from the List
>>> Lst
[]s
Prepared by Dr. C. Sreedhar
LIST COMPREHENSIONS
 List comprehension is used to create a new list from existing sequences
Normal Code
List1= [10, 20, 30, 40, 50]
for i in range(0,len(List1)):
List1[i]=List1[i]+5 # [15, 25, 35, 45, 55]
Using List Comprehension
List1= [10,20,30,40,50]
List1= [x+10 for x in List1] # [20, 30, 40, 50, 60]
Prepared by Dr. C. Sreedhar
Unit 4
• Modules: Reusing Code with Modules and Packages,
Understanding Python Modules, Everyday Module Usage,
Advanced Module Behavior, Combining Modules into
Packages
• Exceptions: When Something Goes Wrong, Classes of
Exceptions, A Final Note on Pythonic Exception Handling.
• File Handling: Need of File Handling, Text Input and
Output, The seek() Function, Binary Files, Accessing and
Manipulating Files and Directories on a Disk.
Prepared by Dr. C. Sreedhar
• os
– os.getcwd()
– os.fspath(path)
– os.getlogin()
• ipaddress:
–ipaddress.IPv4Address(address)
–ipaddress.IPv6Address(address)
• math:
– math.factorial(x)
– math.gcd(n1,n2)
– math.lcm(n1,n2)
– math.trunc(x)
– math.pow(x, y)
– math.pi
• random:
– random.randint(a,b)
– random.uniform(a,b)
• time:
– time.clock_gettime()
– time.clock_gettime_ns()
Module: Builtin Modules
Prepared by Dr. C. Sreedhar
Modules: Create and import
• 1. Open Python IDLE (Start --> Python IDLE)
• 2. File --> New File
• 3. ---- type the following code----
def greeting(name):
print("Hello, " + name)
• 4. Save with module1.py (in Desktop or any folder)
• 5. Pyhton IDLE ==> File --> New File
• 6. ------ type the following code ----
import module1
module1.greeting("CSE4A")
• 7. Save as runmodule.py (in Desktop or any folder)
• 8. In Python IDLE, click on Run --> Run Module
from <module_name> import *
from <module_name> import <name> as <alt_name>
Prepared by Dr. C. Sreedhar
module2.py
----------------------------------------------
def sum_list(lst):
print('Sum=',sum(lst))
---------------------------------------------
summodule.py
---------------------------------------------
import module2
l1=[10,20,30,40]
module2.sum_list(l1)
Modules: Create and import
Prepared by Dr. C. Sreedhar
In python, the inbuilt __import__() function helps
to import modules in runtime
Syntax:
__import__(name, globals, locals, fromlist, level)
Ex:
math_score = __import__('math', globals(), locals(), [], 0)
print(math_score.fabs(17.4))
Prepared by Dr. C. Sreedhar
Package
• A package is basically a directory with Python file
and file with the extension as _init_.py.
• Steps to create package:
– create a package (folder). The name of package, say, My _ First _ Package
– Create _ init _ .py file inside the created package My_First_Package.
– The directory should contain a file named _init_.py. This file can be empty or it
may contain valid Python code.
– create two different .py files, i.e. a.py and b.py with code
a.py
def call_A():
print(“This is first program”)
b.py
def call_B():
print(“This is second”)
>>> My_First_Package.a.call_A()
This is first program
>>> My_First_Package.b.call_B()
This is second
_init_.py
import My_First_Package.a
import My_First_Package.b
Prepared by Dr. C. Sreedhar
# GPREC/CSBS/__init__.py (Empty file)
# GPREC/CSBS/csbs4sem.py
print("In CSBS branch")
# GPREC/CSE/__init__.py
from . import cse4a
from . import cse4b
# GPREC/CSE/cse4a.py
print("In CSE 4A Class")
# GPREC/CSE/cse4b.py
print("In CSE 4B Class")
# GPREC/CSE/cse4c.py
print("In CSE 4C Class")
# world/__init__.py
from . import CSBS
from GPREC import CSE
import GPREC.CSE.cse4a
from GPREC.CSE import cse4b
Prepared by Dr. C. Sreedhar
Exceptions
• An exception is an event, which occurs during the execution of a program,
that disrupts the normal flow of the program's instructions.
• Exception: Base class for all exceptions
• ArithmeticError: Base class for all errors that occur for numeric calculation.
• OverflowError: Raised when a calculation exceeds maximum limit for a numeric type.
• FloatingPointError: Raised when a floating point calculation fails.
• ZeroDivisionError: Raised when division or modulo by zero takes place for numeric
• AttributeError: Raised in case of failure of attribute reference or assignment.
• EOFError: Raised when end of file is reached.
• ImportError: Raised when an import statement fails.
• IndexError: Raised when an index is not found in a sequence.
• EnvironmentError: Base class for all exceptions that occur outside Python environment.
• SyntaxError: Raised when there is an error in Python syntax.
• TypeError: Raised when an operation is attempted that is invalid for specified data type.
Prepared by Dr. C. Sreedhar
try:
<body>
except <ExceptionType1>:
<handler1>
except <ExceptionTypeN>:
<handlerN>
except:
<handlerExcept>
else:
<process_else>
finally:
<process_finally>
Prepared by Dr. C. Sreedhar
try:
num1,num2 = eval(input("Enter two numbers,separated by a comma:"))
result = num1 / num2
print("Result is", result)
except ZeroDivisionError:
print("Division by zero is error !!")
except SyntaxError:
print("Comma is missing. Enter nos separated by comma like this 1, 2")
except:
print("Wrong input")
else:
print("No exceptions")
finally:
print("This will execute no matter what“)
Prepared by Dr. C. Sreedhar
try:
a = [1, 2, 3]
print (a[3])
except LookupError:
print ("Index out of bound error.")
else:
print ("Success")
Prepared by Dr. C. Sreedhar
try:
age= int(input())
assert (age>0 and age<100)
# True: moves to the next line ie., print age; False: returns Assertion Error
except AssertionError:
print("Not valid age.")
except:
print("Invalid data entered")
else:
print("Age is:",age)
Prepared by Dr. C. Sreedhar
try:
age= int(input("Enter your age:"))
if age<0:
raise ValueError
except ValueError:
print("Age cannot be less than zero.")
else:
print("Age is:",age)
Prepared by Dr. C. Sreedhar
Format:
<file variable> = open(<file name>, "r")
Example:
filename = input("Enter name of input file: ")
inputFile = open(filename, "r")
Python File handling
Prepared by Dr. C. Sreedhar
Modes Description
r Opens a file for reading only, default mode.
rb Opens a file for reading only in binary format.
r+ Opens a file for both reading and writing
rb+ Opens a file for both reading and writing in binary format
w Opens a file for writing only. Overwrites the file if the file exists.
Wb Opens a file for writing only in binary format. Overwrites the file if the file exists
w+ Opens a file for both writing and reading, Overwrites file if file exists
Prepared by Dr. C. Sreedhar
Example:
file2 = open(“cse4a.txt", "wb")
print ("Name of the file: ", file2.name)
print ("Closed or not : ", file2.closed)
print ("Opening mode : ", file2.mode)
This would produce following result:
Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Prepared by Dr. C. Sreedhar
Reading contents from file
inputFileName = input("Enter name of input file:")
inputFile = open(inputFileName, "r")
print("Opening file", inputFileName, " for reading.")
for line in inputFile:
sys.stdout.write(line)
inputFile.close()
print("Completed reading of file", inputFileName)
Prepared by Dr. C. Sreedhar
Alternate way to read contents from file
inputFileName = input ("Enter name of input file: ")
inputFile = open(inputFileName, "r")
print("Opening file", inputFileName, " for reading.")
line = inputFile.readline()
while (line != ""):
sys.stdout.write(line)
line = inputFile.readline()
inputFile.close()
print("Completed reading of file", inputFileName)
Prepared by Dr. C. Sreedhar
Writing contents
fo = open(“cse4a.txt", "wb")
fo.write("Welcome to CSE4A n");
fo.close()
Prepared by Dr. C. Sreedhar
Writing contents from one file into another
inputFileName = input("Enter file name to read grades from: ")
outputFileName = input("output filename to write GPA's to: ")
inputFile = open(inputFileName, "r")
outputFile = open(outputFileName, "w")
print("Opening file", inputFileName, " for reading.")
print("Opening file", outputFileName, " for writing.")
gpa = 0
Prepared by Dr. C. Sreedhar
seek()
• seek() function is used to change the position
of the File Handle to a given specific position.
Prepared by Dr. C. Sreedhar
Unit 5
Object-Oriented Programming:
• Class, Objects and Inheritance: Defining Classes, The
Selfparameter and Adding Methods to a Class,
• Display Class Attributes and Methods, Special Class Attributes,
Accessibility, The __init__ Method (Constructor),
• Passing an Object as Parameter to a Method, __del__()
(Destructor Method), Class Membership Tests,
• Method Overloading, Operator Overloading, Inheritance, The
Object Class.
Prepared by Dr. C. Sreedhar
Class and attributes
class Example :
x = 10
print(Example.x)
class Example:
x = 10
y = 20
print(Example.x)
print(Example.y)
Prepared by Dr. C. Sreedhar
Class and method
class Example:
x=10
y=20
def show(obj):
print("x=",obj.x)
print("y=",obj.y)
Example.show=classmethod(Example.show)
Example.show()
Prepared by Dr. C. Sreedhar
Constructor
class Student:
count = 0
def __init__(self):
Student.count = Student.count + 1
s1=Student()
s2=Student()
s3=Student()
print("Total students:",Student.count)
Prepared by Dr. C. Sreedhar
Class and Object
class Student:
def __init__(self, name, percentage):
self.name = name
self.percentage = percentage
def show(self):
print("Name:", self.name,“percentage:", self.percentage)
stud = Student("Sreedhar", 90)
stud.show()
Prepared by Dr. C. Sreedhar
Data encapsulation
class Employee:
def __init__(self, name, empid):
self.name = name
self.empid = empid
def show(self):
print("Name: ", self.name, "and ID:", self.empid)
E = Employee("Sreedhar", 6666)
print(E.name)
print(E.empid)
Prepared by Dr. C. Sreedhar
Class attributes
class MyClass(object):
var = 10
def set_val(self):
self.b = 100
ob1 = MyClass()
print(ob1.var) # This will fetch the class attribute 10.
ob1.set_val()
print(ob1.b) # This will fetch the class attribute 100
Prepared by Dr. C. Sreedhar
Class constructor: Example
class gprecclass:
def __init__ (self, section):
# self allows to attach parameter to the class
self.section =section
p = gprecclass("CSE4A")
print(p.section)
Prepared by Dr. C. Sreedhar
__init__ method: Constructor
class MyNum(object):
def __init__(self):
print("Calling __init__() constructor!n")
self.val = 0
def increment(self):
self.val = self.val + 1
print(self.val)
dd = MyNum()
dd.increment() # will print 1
dd.increment() # will print 2
Prepared by Dr. C. Sreedhar
Constructor
class Rectangle(object):
def __init__(self, l, w):
self.length = l
self.width = w
def area(self):
return self.length*self.width
a = Rectangle(2,10)
print(a.area())
Prepared by Dr. C. Sreedhar
Methods
class Circle:
pi = 3.14
def __init__(self, radius=1):
self.radius = radius
self.area = radius * radius * Circle.pi
def setRadius(self, new_radius):
self.radius = new_radius
self.area = new_radius * new_radius * self.pi
def getCircumference(self):
return self.radius * self.pi * 2
c = Circle()
print('Radius is: ',c.radius)
print('Area is: ',c.area)
print('Circumference is:
',c.getCircumference())
Prepared by Dr. C. Sreedhar
Class and methods
class Subject:
def __init__(self, name, id):
self.id = id
self.name = name
def display(self):
print("Subject ID:%d Name:%s”%(self.id, self.name))
ppy = Subject("Python Programming", 101)
ds = Subject("Data Structures", 102)
ppy.display()
ds.display()
Prepared by Dr. C. Sreedhar
Public access modifier
class Bank:
def __init__(self, name, pin):
# public data members
self.bankname = name
self.bankpin = pin
# public member function
def displaypin(self):
# accessing public data member
print("Pincode: ", self.bankpin)
obj = Bank("Union Bank", 518007)
print("Bank Name: ", obj.bankname)
obj.displaypin()
Prepared by Dr. C. Sreedhar
Private specifier
class Bank:
bankname="SBI"
__custname = None # privatemember
__custage = 20
__custbranch = None
def __init__(self, name, age, branch):
self.__custname = name
self.__custage = age
self.__custbranch = branch
# private member function
def __displayDetails(self):
print("Customer Name: ", self.__custname)
print("Customer Age: ", self.__custage)
print("Cust Branch: ", self.__custbranch)
# public member function
def accessPrivateFunction(self):
# accessing private member function
self.__displayDetails()
obj = Bank("Sree", 25, "SN Colony")
print(obj.bankname)
obj.accessPrivateFunction()
Prepared by Dr. C. Sreedhar
Inheritance
class Base:
def func1(self):
print('This is Base class')
class Derived(Base):
def func2(self):
print('This is Derived class')
obj = Derived()
obj.func1()
obj.func2()
Prepared by Dr. C. Sreedhar
Inheritance
class Date(object):
def get_date(self):
print("2022-05-3")
class Time(Date):
def get_time(self):
print("14:10:00")
dt = Date()
dt.get_date()
print("----------“)
tm = Time()
tm.get_time()
tm.get_date()
Prepared by Dr. C. Sreedhar
Multiple Inheritance
class A(object):
def method1(self):
print("doing this in A")
class B(A):
pass
class C(object):
def method1(self):
print("doing this in C")
class D(B, C):
pass
d_instance = D()
d_instance.method1()
print("nPrint the Method Resolution Order")
print(D.mro())
Prepared by Dr. C. Sreedhar
Method Overloading
class Person:
def M1(self, name=None):
if name is not None:
print('Name: ' + name)
else:
print('Default name ')
obj = Person()
obj.M1()
obj.M1('ABCDEF‘)
Prepared by Dr. C. Sreedhar
Method Overloading
class A:
def __init__(self, a):
self.a = a
# adding two objects
def __add__(self, o):
return self.a + o.a
ob1 = A(10)
ob2 = A(30)
ob3 = A("CSE4A")
ob4 = A(" ECE4A")
print(ob1 + ob2)
print(ob3 + ob4)
Prepared by Dr. C. Sreedhar
Operator Overloading
import math
class Circle:
def __init__(self, radius):
self.__radius = radius
def setRadius(self, radius):
self.__radius = radius
def getRadius(self):
return self.__radius
def area(self):
return math.pi * self.__radius ** 2
def __add__(self, circle_object):
return Circle(self.__radius + circle_object.__radius)
def __lt__(self, circle_object):
return (self.__radius < circle_object.__radius)
def __gt__(self, circle_object):
return (self.__radius > circle_object.__radius)
def __str__(self):
return "Circle area = " + str(self.area())
c1 = Circle(20)
c2 = Circle(30)
c3 = c1 + c2
print(c1.getRadius())
print(c2.getRadius())
print(c3.getRadius())
print(c1 < c2)
print(c3 > c2)
print(str(c1))
print(str(c2))
print(str(c3))
Prepared by Dr. C. Sreedhar

Python Programming: Lists, Modules, Exceptions

  • 1.
    Lists  Creating Lists, Accessing the Elements of a List,  Negative List Indices,  List Slicing [Start: end], List Slicing with Step Size,  Python Inbuilt Functions for Lists,  The List Operator, List Comprehensions,  List Methods, List and Strings, Splitting a String in List,  Passing List to a Function, Returning List from a Function. Prepared by Dr. C. Sreedhar
  • 2.
    # Lists areused to store multiple items in a single variable. # List items can be of similiar items, different items,duplicates list1 = ["cse", "cst", "csbs"] list2 = [10, 50, 60, 80, 40] list3 = [True, False, False] list4 = ["cse4a","cse4b","cse4a","ece"] print(list1) print(list2) print(list3) print(list4[1]) ['cse', 'cst', 'csbs'] [10, 50, 60, 80, 40] [True, False, False] cse4b Prepared by Dr. C. Sreedhar
  • 3.
    # Accept listitems from user uslng list() constructor l1=input(list()) print(l1) # Access the elements using index [ ] operator list4 = ["cse4a","cse4b","cse4a","ece"] print(list4[2]) cse4b # Slicing the list using #Name_of_Variable_of_a_List[Start_Index: End_Index] list4 = ["cse4a","cse4b","cse4a","ece"] ['cse4b', 'cse4a'] Prepared by Dr. C. Sreedhar
  • 4.
    Prepared by Dr.C. Sreedhar
  • 5.
    Lists in python Lists are used to store multiple items in a single variable.  List items can be of any data type. Example:  list1 = ["cse", "cst", "csbs"]  list2 = [10, 50, 60, 80, 40]  list3 = [True, False, False]  List allows duplicates. Example:  cse4a = ["ram", "shyam", "ram", "sree", "dennis"]  print(cse4a)  List allows different data types. Example Prepared by Dr. C. Sreedhar
  • 6.
    Creating a listwith w/o using constructor of the list class  Lists can be created in Python with constructor and w/o constructor Using list Constructor  Create an empty list. L1 = list();  Create a list with any three integer elements, such as 10, 20 and 30. L2 = list([10,20,30])  Create a list with three string elements, such as “Apple”, “Banana” and “Grapes”. L3 = list([“Apple”,”Banana”,”Grapes”])  Create a list using inbuilt range() function. L4 = list(range(0,6))  Create a list with inbuilt characters X, Y and Z. L5=list(“xyz”)  Create a list with any three integer elements, such as 10, 20 and 30. L1=[10,20,30] Prepared by Dr. C. Sreedhar
  • 7.
    ACCESSING THE ELEMENTSOF A LIST  index [] operator is used to access them. The syntax is: Name_of_Variable_of_a_List[index]  L1=([10,20,30,40,50]) >>> List1=[10,20,30,40,50,60] >>> List1[-3] Output 40 Prepared by Dr. C. Sreedhar
  • 8.
    LIST SLICING [START:END]  Name_of_Variable_of_a_List[Start_Index: End_Index] >>> L1=([10,20,30,40,50]) >>> L1[1:4] Output 20,30,40 >>> L1[2:5] Output Prepared by Dr. C. Sreedhar
  • 9.
    LIST SLICING WITHSTEP SIZE  List_Name[Start_Index:End_Index:Step_Size] >>>MyList1=[“CSE”,1,”CST”,2,”ECE”,3,”EEE”] >>>New_List1=MyList1[0:6:2] print(New_List1) Output [‘CSE’, ‘CST’, ‘ECE’] >>> List1=[“Python”,450,”C”,300,”,C++”,670] >>> List1[0:6:3] Output Prepared by Dr. C. Sreedhar
  • 10.
    PYTHON INBUILT FUNCTIONSFOR LIST Prepared by Dr. C. Sreedhar
  • 11.
     + Operator:The concatenation operator is used to join two lists.  a=[1,2,3] b=[4,5,6] a+b # [1, 2, 3, 4, 5, 6]  * Operator: The multiplication operator is used to replicate the elements of a list.  List1=[10,20] List2=[20,30] List3=2*List1 #[10, 20, 10, 20]  in Operator: The in operator used to determine whether an element is in a list. It returns True if the element is present and False if the element is absent in the list.  List1= [10,20]  >>> 40 in List1  False LIST OPERATOR Prepared by Dr. C. Sreedhar
  • 12.
    LIST OPERATOR  isOperator >>> A=’Microsoft’  >>> B=’Microsoft’  >>> A is B  True  >>> A=[‘A’,’B’,’C’]  >>> B=[‘A’,’B’,’C’]  >>> A is B #Check if two lists refer to the same Object  False Prepared by Dr. C. Sreedhar
  • 13.
    del Operator Lst=[10,20,30,40,50,60,70] >>> delLst[2] #Removes 3rd element from the List >>> Lst [10, 20, 40, 50, 60, 70] Lst=[10,20,30,40,50,60,70] >>> del Lst[-1] >>> Lst #Removes last element from the List [10, 20, 30, 40, 50, 60] >>> Lst=[10,20,30,40,50,60,70] >>> del Lst[2:5] #Removes element from index position 2 to 4 >>> Lst [10, 20, 60, 70] >>> Lst=[10,20,30,40,50,60,70] >>> del Lst[:] #Removes all the element from the List >>> Lst []s Prepared by Dr. C. Sreedhar
  • 14.
    LIST COMPREHENSIONS  Listcomprehension is used to create a new list from existing sequences Normal Code List1= [10, 20, 30, 40, 50] for i in range(0,len(List1)): List1[i]=List1[i]+5 # [15, 25, 35, 45, 55] Using List Comprehension List1= [10,20,30,40,50] List1= [x+10 for x in List1] # [20, 30, 40, 50, 60] Prepared by Dr. C. Sreedhar
  • 15.
    Unit 4 • Modules:Reusing Code with Modules and Packages, Understanding Python Modules, Everyday Module Usage, Advanced Module Behavior, Combining Modules into Packages • Exceptions: When Something Goes Wrong, Classes of Exceptions, A Final Note on Pythonic Exception Handling. • File Handling: Need of File Handling, Text Input and Output, The seek() Function, Binary Files, Accessing and Manipulating Files and Directories on a Disk. Prepared by Dr. C. Sreedhar
  • 16.
    • os – os.getcwd() –os.fspath(path) – os.getlogin() • ipaddress: –ipaddress.IPv4Address(address) –ipaddress.IPv6Address(address) • math: – math.factorial(x) – math.gcd(n1,n2) – math.lcm(n1,n2) – math.trunc(x) – math.pow(x, y) – math.pi • random: – random.randint(a,b) – random.uniform(a,b) • time: – time.clock_gettime() – time.clock_gettime_ns() Module: Builtin Modules Prepared by Dr. C. Sreedhar
  • 17.
    Modules: Create andimport • 1. Open Python IDLE (Start --> Python IDLE) • 2. File --> New File • 3. ---- type the following code---- def greeting(name): print("Hello, " + name) • 4. Save with module1.py (in Desktop or any folder) • 5. Pyhton IDLE ==> File --> New File • 6. ------ type the following code ---- import module1 module1.greeting("CSE4A") • 7. Save as runmodule.py (in Desktop or any folder) • 8. In Python IDLE, click on Run --> Run Module from <module_name> import * from <module_name> import <name> as <alt_name> Prepared by Dr. C. Sreedhar
  • 18.
  • 19.
    In python, theinbuilt __import__() function helps to import modules in runtime Syntax: __import__(name, globals, locals, fromlist, level) Ex: math_score = __import__('math', globals(), locals(), [], 0) print(math_score.fabs(17.4)) Prepared by Dr. C. Sreedhar
  • 20.
    Package • A packageis basically a directory with Python file and file with the extension as _init_.py. • Steps to create package: – create a package (folder). The name of package, say, My _ First _ Package – Create _ init _ .py file inside the created package My_First_Package. – The directory should contain a file named _init_.py. This file can be empty or it may contain valid Python code. – create two different .py files, i.e. a.py and b.py with code a.py def call_A(): print(“This is first program”) b.py def call_B(): print(“This is second”) >>> My_First_Package.a.call_A() This is first program >>> My_First_Package.b.call_B() This is second _init_.py import My_First_Package.a import My_First_Package.b Prepared by Dr. C. Sreedhar
  • 21.
    # GPREC/CSBS/__init__.py (Emptyfile) # GPREC/CSBS/csbs4sem.py print("In CSBS branch") # GPREC/CSE/__init__.py from . import cse4a from . import cse4b # GPREC/CSE/cse4a.py print("In CSE 4A Class") # GPREC/CSE/cse4b.py print("In CSE 4B Class") # GPREC/CSE/cse4c.py print("In CSE 4C Class") # world/__init__.py from . import CSBS from GPREC import CSE import GPREC.CSE.cse4a from GPREC.CSE import cse4b Prepared by Dr. C. Sreedhar
  • 22.
    Exceptions • An exceptionis an event, which occurs during the execution of a program, that disrupts the normal flow of the program's instructions. • Exception: Base class for all exceptions • ArithmeticError: Base class for all errors that occur for numeric calculation. • OverflowError: Raised when a calculation exceeds maximum limit for a numeric type. • FloatingPointError: Raised when a floating point calculation fails. • ZeroDivisionError: Raised when division or modulo by zero takes place for numeric • AttributeError: Raised in case of failure of attribute reference or assignment. • EOFError: Raised when end of file is reached. • ImportError: Raised when an import statement fails. • IndexError: Raised when an index is not found in a sequence. • EnvironmentError: Base class for all exceptions that occur outside Python environment. • SyntaxError: Raised when there is an error in Python syntax. • TypeError: Raised when an operation is attempted that is invalid for specified data type. Prepared by Dr. C. Sreedhar
  • 23.
  • 24.
    try: num1,num2 = eval(input("Entertwo numbers,separated by a comma:")) result = num1 / num2 print("Result is", result) except ZeroDivisionError: print("Division by zero is error !!") except SyntaxError: print("Comma is missing. Enter nos separated by comma like this 1, 2") except: print("Wrong input") else: print("No exceptions") finally: print("This will execute no matter what“) Prepared by Dr. C. Sreedhar
  • 25.
    try: a = [1,2, 3] print (a[3]) except LookupError: print ("Index out of bound error.") else: print ("Success") Prepared by Dr. C. Sreedhar
  • 26.
    try: age= int(input()) assert (age>0and age<100) # True: moves to the next line ie., print age; False: returns Assertion Error except AssertionError: print("Not valid age.") except: print("Invalid data entered") else: print("Age is:",age) Prepared by Dr. C. Sreedhar
  • 27.
    try: age= int(input("Enter yourage:")) if age<0: raise ValueError except ValueError: print("Age cannot be less than zero.") else: print("Age is:",age) Prepared by Dr. C. Sreedhar
  • 28.
    Format: <file variable> =open(<file name>, "r") Example: filename = input("Enter name of input file: ") inputFile = open(filename, "r") Python File handling Prepared by Dr. C. Sreedhar
  • 29.
    Modes Description r Opensa file for reading only, default mode. rb Opens a file for reading only in binary format. r+ Opens a file for both reading and writing rb+ Opens a file for both reading and writing in binary format w Opens a file for writing only. Overwrites the file if the file exists. Wb Opens a file for writing only in binary format. Overwrites the file if the file exists w+ Opens a file for both writing and reading, Overwrites file if file exists Prepared by Dr. C. Sreedhar
  • 30.
    Example: file2 = open(“cse4a.txt","wb") print ("Name of the file: ", file2.name) print ("Closed or not : ", file2.closed) print ("Opening mode : ", file2.mode) This would produce following result: Name of the file: foo.txt Closed or not : False Opening mode : wb Prepared by Dr. C. Sreedhar
  • 31.
    Reading contents fromfile inputFileName = input("Enter name of input file:") inputFile = open(inputFileName, "r") print("Opening file", inputFileName, " for reading.") for line in inputFile: sys.stdout.write(line) inputFile.close() print("Completed reading of file", inputFileName) Prepared by Dr. C. Sreedhar
  • 32.
    Alternate way toread contents from file inputFileName = input ("Enter name of input file: ") inputFile = open(inputFileName, "r") print("Opening file", inputFileName, " for reading.") line = inputFile.readline() while (line != ""): sys.stdout.write(line) line = inputFile.readline() inputFile.close() print("Completed reading of file", inputFileName) Prepared by Dr. C. Sreedhar
  • 33.
    Writing contents fo =open(“cse4a.txt", "wb") fo.write("Welcome to CSE4A n"); fo.close() Prepared by Dr. C. Sreedhar
  • 34.
    Writing contents fromone file into another inputFileName = input("Enter file name to read grades from: ") outputFileName = input("output filename to write GPA's to: ") inputFile = open(inputFileName, "r") outputFile = open(outputFileName, "w") print("Opening file", inputFileName, " for reading.") print("Opening file", outputFileName, " for writing.") gpa = 0 Prepared by Dr. C. Sreedhar
  • 35.
    seek() • seek() functionis used to change the position of the File Handle to a given specific position. Prepared by Dr. C. Sreedhar
  • 36.
    Unit 5 Object-Oriented Programming: •Class, Objects and Inheritance: Defining Classes, The Selfparameter and Adding Methods to a Class, • Display Class Attributes and Methods, Special Class Attributes, Accessibility, The __init__ Method (Constructor), • Passing an Object as Parameter to a Method, __del__() (Destructor Method), Class Membership Tests, • Method Overloading, Operator Overloading, Inheritance, The Object Class. Prepared by Dr. C. Sreedhar
  • 37.
    Class and attributes classExample : x = 10 print(Example.x) class Example: x = 10 y = 20 print(Example.x) print(Example.y) Prepared by Dr. C. Sreedhar
  • 38.
    Class and method classExample: x=10 y=20 def show(obj): print("x=",obj.x) print("y=",obj.y) Example.show=classmethod(Example.show) Example.show() Prepared by Dr. C. Sreedhar
  • 39.
    Constructor class Student: count =0 def __init__(self): Student.count = Student.count + 1 s1=Student() s2=Student() s3=Student() print("Total students:",Student.count) Prepared by Dr. C. Sreedhar
  • 40.
    Class and Object classStudent: def __init__(self, name, percentage): self.name = name self.percentage = percentage def show(self): print("Name:", self.name,“percentage:", self.percentage) stud = Student("Sreedhar", 90) stud.show() Prepared by Dr. C. Sreedhar
  • 41.
    Data encapsulation class Employee: def__init__(self, name, empid): self.name = name self.empid = empid def show(self): print("Name: ", self.name, "and ID:", self.empid) E = Employee("Sreedhar", 6666) print(E.name) print(E.empid) Prepared by Dr. C. Sreedhar
  • 42.
    Class attributes class MyClass(object): var= 10 def set_val(self): self.b = 100 ob1 = MyClass() print(ob1.var) # This will fetch the class attribute 10. ob1.set_val() print(ob1.b) # This will fetch the class attribute 100 Prepared by Dr. C. Sreedhar
  • 43.
    Class constructor: Example classgprecclass: def __init__ (self, section): # self allows to attach parameter to the class self.section =section p = gprecclass("CSE4A") print(p.section) Prepared by Dr. C. Sreedhar
  • 44.
    __init__ method: Constructor classMyNum(object): def __init__(self): print("Calling __init__() constructor!n") self.val = 0 def increment(self): self.val = self.val + 1 print(self.val) dd = MyNum() dd.increment() # will print 1 dd.increment() # will print 2 Prepared by Dr. C. Sreedhar
  • 45.
    Constructor class Rectangle(object): def __init__(self,l, w): self.length = l self.width = w def area(self): return self.length*self.width a = Rectangle(2,10) print(a.area()) Prepared by Dr. C. Sreedhar
  • 46.
    Methods class Circle: pi =3.14 def __init__(self, radius=1): self.radius = radius self.area = radius * radius * Circle.pi def setRadius(self, new_radius): self.radius = new_radius self.area = new_radius * new_radius * self.pi def getCircumference(self): return self.radius * self.pi * 2 c = Circle() print('Radius is: ',c.radius) print('Area is: ',c.area) print('Circumference is: ',c.getCircumference()) Prepared by Dr. C. Sreedhar
  • 47.
    Class and methods classSubject: def __init__(self, name, id): self.id = id self.name = name def display(self): print("Subject ID:%d Name:%s”%(self.id, self.name)) ppy = Subject("Python Programming", 101) ds = Subject("Data Structures", 102) ppy.display() ds.display() Prepared by Dr. C. Sreedhar
  • 48.
    Public access modifier classBank: def __init__(self, name, pin): # public data members self.bankname = name self.bankpin = pin # public member function def displaypin(self): # accessing public data member print("Pincode: ", self.bankpin) obj = Bank("Union Bank", 518007) print("Bank Name: ", obj.bankname) obj.displaypin() Prepared by Dr. C. Sreedhar
  • 49.
    Private specifier class Bank: bankname="SBI" __custname= None # privatemember __custage = 20 __custbranch = None def __init__(self, name, age, branch): self.__custname = name self.__custage = age self.__custbranch = branch # private member function def __displayDetails(self): print("Customer Name: ", self.__custname) print("Customer Age: ", self.__custage) print("Cust Branch: ", self.__custbranch) # public member function def accessPrivateFunction(self): # accessing private member function self.__displayDetails() obj = Bank("Sree", 25, "SN Colony") print(obj.bankname) obj.accessPrivateFunction() Prepared by Dr. C. Sreedhar
  • 50.
    Inheritance class Base: def func1(self): print('Thisis Base class') class Derived(Base): def func2(self): print('This is Derived class') obj = Derived() obj.func1() obj.func2() Prepared by Dr. C. Sreedhar
  • 51.
    Inheritance class Date(object): def get_date(self): print("2022-05-3") classTime(Date): def get_time(self): print("14:10:00") dt = Date() dt.get_date() print("----------“) tm = Time() tm.get_time() tm.get_date() Prepared by Dr. C. Sreedhar
  • 52.
    Multiple Inheritance class A(object): defmethod1(self): print("doing this in A") class B(A): pass class C(object): def method1(self): print("doing this in C") class D(B, C): pass d_instance = D() d_instance.method1() print("nPrint the Method Resolution Order") print(D.mro()) Prepared by Dr. C. Sreedhar
  • 53.
    Method Overloading class Person: defM1(self, name=None): if name is not None: print('Name: ' + name) else: print('Default name ') obj = Person() obj.M1() obj.M1('ABCDEF‘) Prepared by Dr. C. Sreedhar
  • 54.
    Method Overloading class A: def__init__(self, a): self.a = a # adding two objects def __add__(self, o): return self.a + o.a ob1 = A(10) ob2 = A(30) ob3 = A("CSE4A") ob4 = A(" ECE4A") print(ob1 + ob2) print(ob3 + ob4) Prepared by Dr. C. Sreedhar
  • 55.
    Operator Overloading import math classCircle: def __init__(self, radius): self.__radius = radius def setRadius(self, radius): self.__radius = radius def getRadius(self): return self.__radius def area(self): return math.pi * self.__radius ** 2 def __add__(self, circle_object): return Circle(self.__radius + circle_object.__radius) def __lt__(self, circle_object): return (self.__radius < circle_object.__radius) def __gt__(self, circle_object): return (self.__radius > circle_object.__radius) def __str__(self): return "Circle area = " + str(self.area()) c1 = Circle(20) c2 = Circle(30) c3 = c1 + c2 print(c1.getRadius()) print(c2.getRadius()) print(c3.getRadius()) print(c1 < c2) print(c3 > c2) print(str(c1)) print(str(c2)) print(str(c3)) Prepared by Dr. C. Sreedhar