Python - Programs - Lab Manual
Python - Programs - Lab Manual
py
name = input("Enter Student Name: ")
roll = input("Enter Roll Number: ")
total = m1 + m2 + m3
percentage = total / 3
P2- set1_q2_mean_median_mode.py
import statistics
scores = [45, 56, 67, 78, 89, 56, 45, 78, 90, 56,
67, 78, 89, 45, 56, 67, 78, 90, 56, 67]
# Mean
mean = sum(scores) / len(scores)
# Median
sorted_scores = sorted(scores)
n = len(sorted_scores)
if n % 2 == 0:
median = (sorted_scores[n//2 - 1] + sorted_scores[n//2]) / 2
else:
median = sorted_scores[n//2]
# Mode
freq = {}
for num in scores:
freq[num] = [Link](num, 0) + 1
print("Manual Calculation")
print("Mean =", mean)
print("Median =", median)
print("Mode =", mode)
print("\nUsing Statistics Module")
print("Mean =", [Link](scores))
print("Median =", [Link](scores))
print("Mode =", [Link](scores))
P3 - set2_q1_login_system.py
correct_username = "admin"
correct_password = "1234"
else:
print("Account Locked")
P4 _bar_charts.py
import [Link] as plt
[Link](figsize=(8,5))
[Link](subjects, marks, color=colors)
[Link]("Average Marks by Subject")
[Link]("Marks")
[Link]("Subjects")
[Link]()
P5 - multiplication_table.py
num = int(input("Enter a Number: "))
print("\nMultiplication Table")
P6 linear_regression.py
import numpy as np
import [Link] as plt
from sklearn.linear_model import LinearRegression
X = [Link]([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).reshape(-1,1)
Y = [Link]([25000,28000,32000,36000,40000,
45000,50000,55000,60000,65000,
70000,76000,82000,88000,95000])
[Link](X, Y)
[Link]("Experience")
[Link]("Salary")
[Link]("Experience vs Salary")
[Link]()
model = LinearRegression()
[Link](X, Y)
predict_years = [Link]([8,12,20]).reshape(-1,1)
predicted_salary = [Link](predict_years)
print()
P8 excel_average_bar_chart.py
from openpyxl import Workbook, load_workbook
import [Link] as plt
wb = Workbook()
ws = [Link]
[Link](["Name","S1","S2","S3","S4","S5"])
[Link](["Ali",80,85,78,88,90])
[Link](["Sara",90,92,95,89,91])
[Link](["John",70,75,72,78,74])
[Link]("[Link]")
wb = load_workbook("[Link]")
ws = [Link]
ws["G1"] = "Average"
names = []
avg_marks = []
avg = sum(marks)/5
[Link](row=row,column=7).value = avg
[Link]([Link](row=row,column=1).value)
avg_marks.append(avg)
[Link]("[Link]")
[Link](names, avg_marks)
[Link]("Students")
[Link]("Average Marks")
[Link]("Student Performance")
[Link]()
P9 q1_tuple_operations.py
days = ("Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday")
if "Monday" in days:
print("Monday Exists")
else:
print("Monday Not Found")
# days[0] = "Mon"
# TypeError: Tuple object does not support item assignment
P10 q2_knn_classification.py
import numpy as np
from sklearn.model_selection import train_test_split
from [Link] import KNeighborsClassifier
from [Link] import accuracy_score
[Link](1)
X = [Link](0,101,(40,2))
y = []
knn = KNeighborsClassifier(n_neighbors=3)
[Link](X_train, y_train)
prediction = [Link]([[55,38]])
print("Prediction:", prediction[0])
y_pred = [Link](X_test)
P12_q2_pie_chart.py
import [Link] as plt
colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99','#c2c2f0','#ffb3e6']
[Link](figsize=(7,7))
[Link](market_share, labels=products, colors=colors,
autopct='%1.1f%%', explode=explode, shadow=True, startangle=90)
# The pie chart shows the percentage market share of each product.
# Product C has the highest market share and its slice is exploded
# (pulled out) to highlight it visually.
P13_q1_electricity_bill.py
def calculate_bill(units):
if units <= 100:
bill = units * 3
elif units <= 200:
bill = 100*3 + (units-100)*5
elif units <= 300:
bill = 100*3 + 100*5 + (units-200)*7
else:
bill = 100*3 + 100*5 + 100*7 + (units-300)*10
return bill
P14_q2_milk_consumption_stats.py
import random
n = len(milk_data)
# Mean
mean = sum(milk_data) / n
# Variance
variance = sum((x - mean) ** 2 for x in milk_data) / n
# Standard Deviation
std_dev = variance ** 0.5
while True:
print("\n----- PHONEBOOK MENU -----")
print("1. Add Contact")
print("2. Search by Name")
print("3. Update Phone Number")
print("4. Delete Contact")
print("5. Display All Contacts (sorted by name)")
print("6. Exit")
if choice == "1":
name = input("Enter name: ")
phone = input("Enter phone number: ")
phonebook[name] = phone
print("Contact added.")
else:
print("Invalid choice. Try again.")
P16_q2_dice_roll.py
import random
sums = []
for _ in range(1000):
dice1 = [Link](1, 6)
dice2 = [Link](1, 6)
[Link](dice1 + dice2)
wb = Workbook()
# Students sheet
ws_students = [Link]
ws_students.title = "Students"
ws_students.append(["Roll No", "Name", "Class", "Marks", "Grade"])
ws_students.append([1, "Ali", "10A", 85, "A"])
ws_students.append([2, "Sara", "10A", 92, "A+"])
ws_students.append([3, "John", "10B", 76, "B"])
ws_students.append([4, "Meena", "10B", 88, "A"])
ws_students.append([5, "Raj", "10C", 65, "C"])
# Teachers sheet
ws_teachers = wb.create_sheet("Teachers")
ws_teachers.append(["Teacher ID", "Name", "Subject", "Experience"])
ws_teachers.append([1, "Mr. Kumar", "Math", 10])
ws_teachers.append([2, "Mrs. Rao", "Science", 8])
ws_teachers.append([3, "Mr. Khan", "English", 5])
ws_teachers.append([4, "Mrs. Iyer", "History", 12])
ws_teachers.append([5, "Mr. Das", "Computer", 6])
# Results sheet
ws_results = wb.create_sheet("Results")
ws_results.append(["Roll No", "Name", "Total", "Percentage", "Result"])
ws_results.append([1, "Ali", 425, 85.0, "Pass"])
ws_results.append([2, "Sara", 460, 92.0, "Pass"])
ws_results.append([3, "John", 380, 76.0, "Pass"])
ws_results.append([4, "Meena", 440, 88.0, "Pass"])
ws_results.append([5, "Raj", 325, 65.0, "Pass"])
[Link]("[Link]")
P18_q2_correlation_prediction.py
import numpy as np
# Hours studied per day (X) and exam marks (Y) for 20 students
hours = [Link]([1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,
6,6.5,7,7.5,8,8.5,1.2,2.8,4.2,6.8])
marks = [Link]([35,40,45,50,55,58,62,65,70,72,
75,78,80,83,85,88,42,52,63,79])
# Correlation
correlation = [Link](hours, marks)[0, 1]
print("Correlation between hours studied and marks =", round(correlation, 4))
wb = load_workbook("[Link]")
ws = wb["Students"]
# (a) Add a new column 'Grade' (already exists in our sheet, but ensure values)
ws["E1"] = "Grade"
grades = ["A", "A+", "B", "A", "C"]
for i, grade in enumerate(grades, start=2):
[Link](row=i, column=5).value = grade
[Link]("[Link]")
P20_q2_defects_histogram.py
import random
import [Link] as plt
[Link](figsize=(8,5))
[Link](defects, bins=range(0, 17), edgecolor='black', color='skyblue')
[Link]("Daily Product Defects Histogram")
[Link]("Number of Defects")
[Link]("Frequency (Days)")
[Link]()
P21 set11_q1_marks_workbook_formulas.py
from openpyxl import Workbook, load_workbook
wb = Workbook()
ws = [Link]
[Link] = "Marks"
students = [
["Ali", 85, 78, 88],
["Sara", 90, 92, 95],
["John", 70, 75, 72],
["Meena", 88, 84, 91],
["Raj", 65, 70, 68],
["Priya", 92, 89, 94],
["Kiran", 76, 80, 78],
["Asha", 81, 85, 83],
["Vikram", 60, 65, 62],
["Neha", 95, 98, 97],
]
start_row = 2
for i, student in enumerate(students):
row = start_row + i
name, math, sci, eng = student
[Link]([name, math, sci, eng,
f"=SUM(B{row}:D{row})",
f"=AVERAGE(B{row}:D{row})"])
[Link]("[Link]")
P22 set11_q2_marks_management_functions.py
def get_marks():
name = input("Enter student name: ")
marks = []
for i in range(1, 6):
m = float(input(f"Enter marks for Subject {i}: "))
[Link](m)
return name, marks
def calculate_result(marks):
total = sum(marks)
average = total / len(marks)
[Link]({
"name": name,
"roll_no": roll_no,
"marks": [m1, m2, m3]
})
P24 set12_q2_bar_charts.py
import [Link] as plt
[Link](figsize=(8,5))
[Link](subjects, marks, color=colors)
[Link]("Average Marks by Subject")
[Link]("Marks")
[Link]("Subjects")
[Link]()
P25 set13_q1_report_card.py
name = input("Enter Student Name: ")
roll = input("Enter Roll Number: ")
total = m1 + m2 + m3
percentage = total / 3
P26 set13_q2_random_datasets_stats.py
import random
import statistics
print(f"\nDataset {name}")
print("Mean =", round(mean, 2))
print("Median =", median)
print("Variance =", round(variance, 2))
print("Standard Deviation =", round(std_dev, 2))
P27_q1_login_system.py
correct_username = "admin"
correct_password = "1234"
else:
print("Account Locked")
P28 set14_q2_excel_average_bar_chart.py
from openpyxl import Workbook, load_workbook
import [Link] as plt
wb = Workbook()
ws = [Link]
[Link](["Name","S1","S2","S3","S4","S5"])
[Link](["Ali",80,85,78,88,90])
[Link](["Sara",90,92,95,89,91])
[Link](["John",70,75,72,78,74])
[Link]("[Link]")
wb = load_workbook("[Link]")
ws = [Link]
ws["G1"] = "Average"
names = []
avg_marks = []
avg = sum(marks)/5
[Link](row=row,column=7).value = avg
[Link]([Link](row=row,column=1).value)
avg_marks.append(avg)
[Link]("[Link]")
[Link](names, avg_marks)
[Link]("Students")
[Link]("Average Marks")
[Link]("Student Performance")
[Link]()
P29_q1_multiplication_table.py
num = int(input("Enter a Number: "))
print("\nMultiplication Table")
P30 set15_q2_knn_classification.py
import numpy as np
from sklearn.model_selection import train_test_split
from [Link] import KNeighborsClassifier
from [Link] import accuracy_score
[Link](1)
X = [Link](0,101,(40,2))
y = []
knn = KNeighborsClassifier(n_neighbors=3)
[Link](X_train, y_train)
prediction = [Link]([[55,38]])
print("Prediction:", prediction[0])
y_pred = [Link](X_test)
print()
P32_q2_pie_chart.py
import [Link] as plt
colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99','#c2c2f0','#ffb3e6']
[Link](figsize=(7,7))
[Link](market_share, labels=products, colors=colors,
autopct='%1.1f%%', explode=explode, shadow=True, startangle=90)
# The pie chart shows the percentage market share of each product.
# Product C has the highest market share and its slice is exploded
# (pulled out) to highlight it visually.
P33 set17_q1_tuple_operations.py
days = ("Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday")
if "Monday" in days:
print("Monday Exists")
else:
print("Monday Not Found")
# days[0] = "Mon"
# TypeError: Tuple object does not support item assignment
P34 set17_q2_correlation_prediction.py
import numpy as np
# Hours studied per day (X) and exam marks (Y) for 20 students
hours = [Link]([1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,
6,6.5,7,7.5,8,8.5,1.2,2.8,4.2,6.8])
marks = [Link]([35,40,45,50,55,58,62,65,70,72,
75,78,80,83,85,88,42,52,63,79])
# Correlation
correlation = [Link](hours, marks)[0, 1]
print("Correlation between hours studied and marks =", round(correlation, 4))
P36_q2_linear_regression.py
import numpy as np
import [Link] as plt
from sklearn.linear_model import LinearRegression
X = [Link]([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).reshape(-1,1)
Y = [Link]([25000,28000,32000,36000,40000,
45000,50000,55000,60000,65000,
70000,76000,82000,88000,95000])
[Link](X, Y)
[Link]("Experience")
[Link]("Salary")
[Link]("Experience vs Salary")
[Link]()
model = LinearRegression()
[Link](X, Y)
predict_years = [Link]([8,12,20]).reshape(-1,1)
predicted_salary = [Link](predict_years)
P38 - set19_q2_defects_histogram.py
import random
import [Link] as plt
[Link](figsize=(8,5))
[Link](defects, bins=range(0, 17), edgecolor='black', color='skyblue')
[Link]("Daily Product Defects Histogram")
[Link]("Number of Defects")
[Link]("Frequency (Days)")
[Link]()
P39- set20_q1_phonebook.py
phonebook = {}
while True:
print("\n----- PHONEBOOK MENU -----")
print("1. Add Contact")
print("2. Search by Name")
print("3. Update Phone Number")
print("4. Delete Contact")
print("5. Display All Contacts (sorted by name)")
print("6. Exit")
if choice == "1":
name = input("Enter name: ")
phone = input("Enter phone number: ")
phonebook[name] = phone
print("Contact added.")
else:
print("Invalid choice. Try again.")
P40_q2_milk_consumption_stats.py
import random
n = len(milk_data)
# Mean
mean = sum(milk_data) / n
# Variance
variance = sum((x - mean) ** 2 for x in milk_data) / n
# Standard Deviation
std_dev = variance ** 0.5
wb = Workbook()
# Students sheet
ws_students = [Link]
ws_students.title = "Students"
ws_students.append(["Roll No", "Name", "Class", "Marks", "Grade"])
ws_students.append([1, "Ali", "10A", 85, "A"])
ws_students.append([2, "Sara", "10A", 92, "A+"])
ws_students.append([3, "John", "10B", 76, "B"])
ws_students.append([4, "Meena", "10B", 88, "A"])
ws_students.append([5, "Raj", "10C", 65, "C"])
# Teachers sheet
ws_teachers = wb.create_sheet("Teachers")
ws_teachers.append(["Teacher ID", "Name", "Subject", "Experience"])
ws_teachers.append([1, "Mr. Kumar", "Math", 10])
ws_teachers.append([2, "Mrs. Rao", "Science", 8])
ws_teachers.append([3, "Mr. Khan", "English", 5])
ws_teachers.append([4, "Mrs. Iyer", "History", 12])
ws_teachers.append([5, "Mr. Das", "Computer", 6])
# Results sheet
ws_results = wb.create_sheet("Results")
ws_results.append(["Roll No", "Name", "Total", "Percentage", "Result"])
ws_results.append([1, "Ali", 425, 85.0, "Pass"])
ws_results.append([2, "Sara", 460, 92.0, "Pass"])
ws_results.append([3, "John", 380, 76.0, "Pass"])
ws_results.append([4, "Meena", 440, 88.0, "Pass"])
ws_results.append([5, "Raj", 325, 65.0, "Pass"])
[Link]("[Link]")
P42_q2_dice_roll.py
import random
sums = []
for _ in range(1000):
dice1 = [Link](1, 6)
dice2 = [Link](1, 6)
[Link](dice1 + dice2)
wb = load_workbook("[Link]")
ws = wb["Students"]
# (a) Add a new column 'Grade' and fill it with sample values
ws["E1"] = "Grade"
grades = ["A", "A+", "B", "A", "C"]
for i, grade in enumerate(grades, start=2):
[Link](row=i, column=5).value = grade
[Link]("[Link]")
P44 set22_q2_random_datasets_stats.py
import random
import statistics
print(f"\nDataset {name}")
print("Mean =", round(mean, 2))
print("Median =", median)
print("Variance =", round(variance, 2))
print("Standard Deviation =", round(std_dev, 2))
P45- q1_marks_workbook_formulas.py
from openpyxl import Workbook, load_workbook
wb = Workbook()
ws = [Link]
[Link] = "Marks"
students = [
["Ali", 85, 78, 88],
["Sara", 90, 92, 95],
["John", 70, 75, 72],
["Meena", 88, 84, 91],
["Raj", 65, 70, 68],
["Priya", 92, 89, 94],
["Kiran", 76, 80, 78],
["Asha", 81, 85, 83],
["Vikram", 60, 65, 62],
["Neha", 95, 98, 97],
]
start_row = 2
for i, student in enumerate(students):
row = start_row + i
name, math, sci, eng = student
[Link]([name, math, sci, eng,
f"=SUM(B{row}:D{row})",
f"=AVERAGE(B{row}:D{row})"])
[Link]("[Link]")
P46_q2_mean_median_mode.py
import statistics
scores = [45, 56, 67, 78, 89, 56, 45, 78, 90, 56,
67, 78, 89, 45, 56, 67, 78, 90, 56, 67]
# Mean
mean = sum(scores) / len(scores)
# Median
sorted_scores = sorted(scores)
n = len(sorted_scores)
if n % 2 == 0:
median = (sorted_scores[n//2 - 1] + sorted_scores[n//2]) / 2
else:
median = sorted_scores[n//2]
# Mode
freq = {}
for num in scores:
freq[num] = [Link](num, 0) + 1
print("Manual Calculation")
print("Mean =", mean)
print("Median =", median)
print("Mode =", mode)
[Link]({
"name": name,
"roll_no": roll_no,
"marks": [m1, m2, m3]
})
P48_q2_excel_average_bar_chart.py
from openpyxl import Workbook, load_workbook
import [Link] as plt
wb = Workbook()
ws = [Link]
[Link](["Name","S1","S2","S3","S4","S5"])
[Link](["Ali",80,85,78,88,90])
[Link](["Sara",90,92,95,89,91])
[Link](["John",70,75,72,78,74])
[Link]("[Link]")
wb = load_workbook("[Link]")
ws = [Link]
ws["G1"] = "Average"
names = []
avg_marks = []
avg = sum(marks)/5
[Link](row=row,column=7).value = avg
[Link]([Link](row=row,column=1).value)
avg_marks.append(avg)
[Link]("[Link]")
[Link](names, avg_marks)
[Link]("Students")
[Link]("Average Marks")
[Link]("Student Performance")
[Link]()
49_q1_student_performance_system.py
from openpyxl import Workbook
import [Link] as plt
def calculate_total_average_grade(marks):
total = sum(marks)
average = total / len(marks)
# (a) & (b) Accept data for 10 students and store as list of dictionaries
students = []
for i in range(10):
print(f"\nEnter details for Student {i+1}:")
name = input("Name: ")
roll = input("Roll No: ")
marks = []
for s in range(1, 6):
m = float(input(f"Marks for Subject {s}: "))
[Link](m)
[Link]({
"name": name,
"roll": roll,
"marks": marks,
"total": total,
"average": average,
"grade": grade
})
[Link]("[Link]")
print("\nData saved to [Link]")
[Link](figsize=(8,5))
[Link](names, averages, color="teal")
[Link]("Student Performance - Average Marks")
[Link]("Students")
[Link]("Average Marks")
[Link]()
P50 _q2_bar_charts.py
import [Link] as plt
[Link](figsize=(8,5))
[Link](subjects, marks, color=colors)
[Link]("Average Marks by Subject")
[Link]("Marks")
[Link]("Subjects")
[Link]()