The document discusses various topics related to lists in Python including:
- Lists can store multiple items of similar or different types in a single variable.
- List items can be accessed and modified using indexes.
- List slicing allows accessing elements within a specified index range.
- Built-in functions like len(), max(), min() etc. can be used to perform operations on lists.
- List methods allow adding, removing, and modifying elements in lists.
- Lists can be passed as arguments to functions and returned from functions.
Overview of creating and accessing lists, their characteristics, including duplicates and different data types.
Details on slicing lists, using inbuilt functions and operators, including concatenation and multiplication.
Introduction to modules, examples of builtin modules, and creating custom packages.
Definition, types of exceptions, handling methods using try-except, and file handling modes. File operations like reading and writing contents, including using seek function and file modes.
Class definition and attributes, constructor methods, inheritance, method overloading, and operator overloading, showcasing various examples.
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
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
+ 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
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
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
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
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
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