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