PYTHON LAB MANUAL
PYTHON LAB MANUAL
1. a) Develop a program to read the student details like Name, USN, and Marks in three subjects.
Display the student details, total marks and percentage with suitable messages
Output:
Enter the name of the student : RAMESH
Enter the USN of the student : 1SI22CS036
Enter marks in Subject 1 : 87
Enter marks in Subject 2 : 78
Enter marks in Subject 3 : 65
Student Details
Name : RAMESH
USN : 1SI22CS036
Marks 1 : 87
Marks 2 : 78
Marks 3 : 65
Total : 230
Percent : 76.67
b) Develop a program to read the name and year of birth of a person. Display whether the person
is a senior citizen or not.
curYear = date.today().year
perAge = curYear - perDOB
Output:
2. a) Develop a program to generate Fibonacci sequence of length (N). Read N from the console.
firstTerm = 0
secondTerm = 1
print("The Fibonacci series with", num, "terms is :")
print(firstTerm, secondTerm, end=" ")
for i in range(2,num):
curTerm = firstTerm + secondTerm
print(curTerm, end=" ")
firstTerm = secondTerm
secondTerm = curTerm
Output:
Enter the Fibonacci sequence length to be generated : 8
The Fibonacci series with 8 terms is :
0 1 1 2 3 5 8 13
def fact(num):
if num == 0:
1. return 1
2. else:
3. return num * fact(num-1)
4.
5.
6. n = int(input("Enter the value of N : "))
7. r = int(input("Enter the value of R (R cannot be negative or greater than N): "))
8. nCr = fact(n)/(fact(r)*fact(n-r))
9.
10. print(n,'C',r," = ","%d"%nCr,sep="")
Output:
3) Read N numbers from the console and create a list. Develop a program to print mean, variance
and standard deviation with suitable messages.
for i in range(num):
val = int(input("Enter the element : "))
myList.append(val)
total = 0
for elem in myList:
total += elem
mean = total / num
total = 0
for elem in myList:
total += (elem - mean) * (elem - mean)
variance = total / num
stdDev = sqrt(variance)
print("Mean =", mean)
print("Variance =", variance)
print("Standard Deviation =", "%.2f"%stdDev)
Output:
Enter the number of elements in your list : 5
Enter the element : 45
Enter the element : 34
Enter the element : 86
Enter the element : 92
Enter the element : 35
uniqDig = set(num)
#print(uniqDig)
Output:
Enter a number : 234939
The number entered is : 234939
4 occurs 1 times
9 occurs 2 times
3 occurs 2 times
2 occurs 1 times
5) Develop a program to print 10 most frequently appearing words in a text file. [Hint: Use
dictionary with distinct words and their frequency of occurrences. Sort the dictionary in the reverse
order of frequency and display dictionary slice of first 10 items
import sys
import string
import os.path
fname = input("Enter the filename : ") #sample file text.txt also provided
if not os.path.isfile(fname):
print("File", fname, "doesn't exists")
sys.exit(0)
filecontents = ""
wordFreq = {}
wordList = filecontents.split()
# print(wordFreq)
# print(type(sortedWordFreq))
# print(sortedWordFreq)
print("\n===================================================")
print("10 most frequently appearing words with their count")
print("===================================================")
for i in range(10):
print(sortedWordFreq[i][0], "occurs", sortedWordFreq[i][1], "times")
Output:
===================================================
10 most frequently appearing words with their count
===================================================
the occurs 45 times
of occurs 24 times
party occurs 12 times
part occurs 12 times
a occurs 9 times
and occurs 8 times
second occurs 7 times
to occurs 6 times
shall occurs 6 times
first occurs 5 times
6) Develop a program to sort the contents of a text file and write the sorted contents into a separate
text
file. [Hint: Use string methods strip(), len(), list methods sort(), append(), and file methods open(),
readlines(), and write()].
import os.path
import sys
fname = input("Enter the filename whose contents are to be sorted : ") #sample file unsorted.txt also
provided
if not os.path.isfile(fname):
print("File", fname, "doesn't exists")
sys.exit(0)
myList = infile.readlines()
# print(myList)
lineList.sort()
outfile = open("sorted.txt","w")
if os.path.isfile("sorted.txt"):
print("\nFile containing sorted content sorted.txt created successfully")
print("sorted.txt contains", len(lineList), "lines")
print("Contents of sorted.txt")
print("=================================================================")
rdFile = open("sorted.txt","r")
for line in rdFile:
print(line, end="")
Output:
Enter the filename whose contents are to be sorted : unsorted.txt
7)Develop a program to backing Up a given Folder (Folder in a current working directory) into a
ZIP File by using relevant modules and suitable methods.
import os
import sys
import pathlib
import zipfile
if not os.path.isdir(dirName):
print("Directory", dirName, "doesn't exists")
sys.exit(0)
curDirectory = pathlib.Path(dirName)
if os.path.isfile("myZip.zip"):
print("Archive", "myZip.zip", "created successfully")
else:
print("Error in creating zip archive")
Output:
Enter Directory name that you want to backup : zipDemo
Archive myZip.zip created successfully
8) Write a function named DivExp which takes TWO parameters a, b and returns a value c (c=a/b).
Write suitable assertion for a>0 in function DivExp and raise an exception for when b=0. Develop
a suitable program which reads two values from the console and calls a function DivExp.
import sys
def DivExp(a,b):
assert a>0, "a should be greater than 0"
try:
c = a/b
except ZeroDivisionError:
print("Value of b cannot be zero")
sys.exit(0)
else:
return c
val1 = int(input("Enter a value for a : "))
val2 = int(input("Enter a value for b : "))
Output:
Enter a value for a : 7
Enter a value for b : 6
7 / 6 = 1.1666666666666667
9) Define a function which takes TWO objects representing complex numbers and returns new
complex number with a addition of two complex numbers. Define a suitable class ‘Complex’ to
represent the complex number. Develop a program to read N (N >=2) complex numbers and to
compute the addition of N complex numbers.
class Complex:
def __init__(self, realp = 0, imagp=0):
self.realp = realp
self.imagp = imagp
def readComplex(self):
self.realp = int(input("Enter the real part : "))
self.imagp = int(input("Enter the real part : "))
def showComplex(self):
print('(',self.realp,')','+i','(',self.imagp,')',sep="")
def add2Complex(a,b):
c = a.addComplex(b)
return c
def main():
c1 = Complex(3,5)
c2 = Complex(6,4)
c3 = add2Complex(c1, c2)
compList = []
for i in range(num):
print("Object", i+1)
obj = Complex()
obj.readComplex()
compList.append(obj)
sumObj = Complex()
for obj in compList:
sumObj = add2Complex(sumObj, obj)
Output:
Complex Number 1
(3)+i(5)
Complex Number 2
(6)+i(4)
Sum of two Complex Numbers
(9)+i(9)
10) Develop a program that uses class Student which prompts the user to enter marks in three
subjects and calculates total marks, percentage and displays the score card details. [Hint: Use list
to store the marks in three subjects and total marks. Use __init__() method to initialize name, USN
and the lists to store marks and total, Use getMarks() method to read marks into the list, and
display() method to display the score card details.
class Student:
def __init__(self, name = "", usn = "", score = [0,0,0,0]):
self.name = name
self.usn = usn
self.score = score
def getMarks(self):
self.name = input("Enter student Name : ")
self.usn = input("Enter student USN : ")
self.score[0] = int(input("Enter marks in Subject 1 : "))
self.score[1] = int(input("Enter marks in Subject 2 : "))
self.score[2] = int(input("Enter marks in Subject 3 : "))
self.score[3] = self.score[0] + self.score[1] + self.score[2]
def display(self):
percentage = self.score[3]/3
spcstr = "=" * 81
print(spcstr)
print("SCORE CARD DETAILS".center(81))
print(spcstr)
print("%15s"%("NAME"), "%12s"%("USN"),
"%8s"%"MARKS1","%8s"%"MARKS2","%8s"%"MARKS3","%8s"%"TOTAL","%12s"%("PERCEN
TAGE"))
print(spcstr)
print("%15s"%self.name, "%12s"%self.usn,
"%8d"%self.score[0],"%8d"%self.score[1],"%8d"%self.score[2],"%8d"%self.score[3],"%12.2f"%perce
ntage)
print(spcstr)
def main():
s1 = Student()
s1.getMarks()
s1.display()
main()
Output:
Enter student Name : Shivappa
Enter student USN : 1DB23CS065
Enter marks in Subject 1 : 87
Enter marks in Subject 2 : 79
Enter marks in Subject 3 : 92
==========================================================================
SCORE CARD DETAILS
==========================================================================
NAME USN MARKS1 MARKS2 MARKS3 TOTAL PERCENTAGE
==========================================================================
Shivappa 1DB23CS065 87 79 92 258 86.00