0% found this document useful (0 votes)
1 views37 pages

Python - Programs - Lab Manual

For NTTF

Uploaded by

dhruvanth16189
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views37 pages

Python - Programs - Lab Manual

For NTTF

Uploaded by

dhruvanth16189
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

P1 - set1_q1_report_card.

py
name = input("Enter Student Name: ")
roll = input("Enter Roll Number: ")

m1 = float(input("Enter Marks in Subject 1: "))


m2 = float(input("Enter Marks in Subject 2: "))
m3 = float(input("Enter Marks in Subject 3: "))

total = m1 + m2 + m3
percentage = total / 3

print("\n===== REPORT CARD =====")


print("Name :", name)
print("Roll No :", roll)
print("Subject 1 :", m1)
print("Subject 2 :", m2)
print("Subject 3 :", m3)
print("Total :", total)
print("Percentage :", round(percentage, 2), "%")

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

mode = max(freq, key=[Link])

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"

for attempt in range(3):


username = input("Username: ")
password = input("Password: ")

if username == correct_username and password == correct_password:


print("Welcome,", username)
break
else:
print("Invalid Login")

else:
print("Account Locked")

P4 _bar_charts.py
import [Link] as plt

subjects = ["Math", "Science", "English", "Computer",


"Physics", "Chemistry", "Biology", "History"]

marks = [85, 78, 82, 90, 75, 80, 88, 72]

# Vertical Bar Chart


[Link](figsize=(8,5))
[Link](subjects, marks)
[Link]("Average Marks by Subject")
[Link]("Subjects")
[Link]("Marks")
[Link]()

# Horizontal Bar Chart


colors = ['red','blue','green','orange',
'purple','brown','pink','cyan']

[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")

for i in range(1, 11):


print(f"{num} x {i} = {num*i}")

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)

for exp, sal in zip([8,12,20], predicted_salary):


print(f"Salary for {exp} years experience = {sal:.2f}")
P7 _number_pattern.py
for i in range(1, 6):
for j in range(1, i+1):
print(j, end=" ")
print()

print()

for i in range(5, 0, -1):


for j in range(1, i+1):
print(j, end=" ")
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 = []

for row in range(2, ws.max_row+1):


marks = [[Link](row=row,column=col).value
for col in range(2,7)]

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")

print("3rd Day =", days[2])

print("Last 3 Days =", days[-3:])

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 = []

for math, science in X:


if math >= 40 and science >= 40:
[Link]("Pass")
else:
[Link]("Fail")

X_train, X_test, y_train, y_test = train_test_split(


X, y, test_size=0.3, random_state=1)

knn = KNeighborsClassifier(n_neighbors=3)

[Link](X_train, y_train)

prediction = [Link]([[55,38]])

print("Prediction:", prediction[0])

y_pred = [Link](X_test)

print("Accuracy =", accuracy_score(y_test, y_pred))


P11 _q1_attendance_array.py
attendance = []

for i in range(1, 11):


val = int(input(f"Enter attendance for Section {i}: "))
[Link](val)

print("\nAttendance of all sections:")


for i, val in enumerate(attendance, start=1):
print(f"Section {i}: {val}")

average = sum(attendance) / len(attendance)


print("\nAverage Attendance =", round(average, 2))

P12_q2_pie_chart.py
import [Link] as plt

products = ["Product A", "Product B", "Product C",


"Product D", "Product E", "Product F"]

market_share = [25, 15, 30, 10, 12, 8]

colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99','#c2c2f0','#ffb3e6']

# Explode the slice with the highest share


max_index = market_share.index(max(market_share))
explode = [0.1 if i == max_index else 0 for i in range(len(market_share))]

[Link](figsize=(7,7))
[Link](market_share, labels=products, colors=colors,
autopct='%1.1f%%', explode=explode, shadow=True, startangle=90)

[Link]("Market Share of Products")


[Link]()

# 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

units = int(input("Enter units consumed: "))


bill = calculate_bill(units)
print(f"Electricity bill for {units} units = Rs.{bill}")

P14_q2_milk_consumption_stats.py
import random

# Generate milk consumption data (litres) for 30 days


milk_data = [round([Link](1.0, 5.0), 2) for _ in range(30)]

print("Milk Consumption Data (30 days):")


print(milk_data)

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

print("\nMean =", round(mean, 2))


print("Variance =", round(variance, 2))
print("Standard Deviation =", round(std_dev, 2))
P15_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")

choice = input("Enter your choice: ")

if choice == "1":
name = input("Enter name: ")
phone = input("Enter phone number: ")
phonebook[name] = phone
print("Contact added.")

elif choice == "2":


name = input("Enter name to search: ")
if name in phonebook:
print(f"{name}: {phonebook[name]}")
else:
print("Contact not found.")

elif choice == "3":


name = input("Enter name to update: ")
if name in phonebook:
phone = input("Enter new phone number: ")
phonebook[name] = phone
print("Contact updated.")
else:
print("Contact not found.")

elif choice == "4":


name = input("Enter name to delete: ")
if name in phonebook:
del phonebook[name]
print("Contact deleted.")
else:
print("Contact not found.")

elif choice == "5":


print("\nAll Contacts (sorted by name):")
for name in sorted(phonebook):
print(f"{name}: {phonebook[name]}")

elif choice == "6":


print("Exiting Phonebook. Goodbye!")
break

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)

print("Frequency of each sum (2-12):")


for value in range(2, 13):
count = [Link](value)
print(f"Sum {value}: {count} times")
P17_q1_school_data_excel.py
from openpyxl import Workbook, load_workbook

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"])

# Make Results the active sheet


[Link] = [Link]("Results")

[Link]("[Link]")

# Reload and print all data


wb = load_workbook("[Link]")

for sheet_name in [Link]:


ws = wb[sheet_name]
print(f"\n----- {sheet_name} -----")
for row in ws.iter_rows(values_only=True):
print(row)

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))

# Simple linear regression (manual using numpy polyfit)


slope, intercept = [Link](hours, marks, 1)

print(f"Regression Equation: marks = {slope:.2f} * hours + {intercept:.2f}")

for h in [2, 5, 8]:


predicted = slope * h + intercept
print(f"Predicted marks for {h} study hours = {predicted:.2f}")
P19_q1_modify_school_data.py
from openpyxl import load_workbook

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

# (b) Add a new row at the end with student details


[Link]([6, "Priya", "10A", 91, "A+"])

# (c) Delete the 2nd row (first student row, roll no 1)


ws.delete_rows(2)

[Link]("[Link]")

# (d) Reload and print all data to verify


wb = load_workbook("[Link]")
ws = wb["Students"]

print("Updated Students Sheet:")


for row in ws.iter_rows(values_only=True):
print(row)

P20_q2_defects_histogram.py
import random
import [Link] as plt

# Generate defect data for 60 days (0-15 defects per day)


defects = [[Link](0, 15) for _ in range(60)]

print("Defects data (60 days):")


print(defects)

[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"

[Link](["Name", "Math", "Science", "English", "Total", "Average"])

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})"])

# Final row with column totals using SUM formula


total_row = start_row + len(students)
[Link](row=total_row, column=1).value = "Total"
for col in ["B", "C", "D", "E"]:
ws[f"{col}{total_row}"] = f"=SUM({col}{start_row}:{col}{total_row-1})"

[Link]("[Link]")

# Verify by reloading (formulas are stored, not calculated values)


wb = load_workbook("[Link]")
ws = [Link]

print("Saved Marks Workbook (formulas):")


for row in ws.iter_rows(values_only=True):
print(row)

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)

if average >= 90:


grade = "A+"
elif average >= 75:
grade = "A"
elif average >= 60:
grade = "B"
elif average >= 40:
grade = "C"
else:
grade = "F"

return total, average, grade

def display_result(name, result):


total, average, grade = result
print("\n----- RESULT -----")
print("Name :", name)
print("Total :", total)
print("Average :", round(average, 2))
print("Grade :", grade)

for student_num in range(1, 6):


print(f"\n--- Student {student_num} ---")
name, marks = get_marks()
result = calculate_result(marks)
display_result(name, result)
P23 set12_q1_student_database.py
students = []

# (a) Add 5 students


for i in range(5):
print(f"\nEnter details for Student {i+1}:")
name = input("Name: ")
roll_no = input("Roll No: ")
m1 = float(input("Marks Subject 1: "))
m2 = float(input("Marks Subject 2: "))
m3 = float(input("Marks Subject 3: "))

[Link]({
"name": name,
"roll_no": roll_no,
"marks": [m1, m2, m3]
})

# (b) Search by roll number


search_roll = input("\nEnter roll number to search: ")
found = False
for s in students:
if s["roll_no"] == search_roll:
print("Student Found:", s)
found = True
break
if not found:
print("Student not found.")

# (c) Display top 3 students by average


students_sorted = sorted(students,
key=lambda s: sum(s["marks"]) / len(s["marks"]),
reverse=True)

print("\nTop 3 Students by Average:")


for s in students_sorted[:3]:
avg = sum(s["marks"]) / len(s["marks"])
print(f"{s['name']} (Roll {s['roll_no']}) - Average: {round(avg, 2)}")

# (d) Display all students who failed (average < 40)


print("\nFailed Students (Average < 40):")
for s in students:
avg = sum(s["marks"]) / len(s["marks"])
if avg < 40:
print(f"{s['name']} (Roll {s['roll_no']}) - Average: {round(avg, 2)}")

P24 set12_q2_bar_charts.py
import [Link] as plt

subjects = ["Math", "Science", "English", "Computer",


"Physics", "Chemistry", "Biology", "History"]

marks = [85, 78, 82, 90, 75, 80, 88, 72]


# Vertical Bar Chart
[Link](figsize=(8,5))
[Link](subjects, marks)
[Link]("Average Marks by Subject")
[Link]("Subjects")
[Link]("Marks")
[Link]()

# Horizontal Bar Chart with different colours per bar


colors = ['red','blue','green','orange',
'purple','brown','pink','cyan']

[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: ")

m1 = float(input("Enter Marks in Subject 1: "))


m2 = float(input("Enter Marks in Subject 2: "))
m3 = float(input("Enter Marks in Subject 3: "))

total = m1 + m2 + m3
percentage = total / 3

print("\n===== REPORT CARD =====")


print("Name :", name)
print("Roll No :", roll)
print("Subject 1 :", m1)
print("Subject 2 :", m2)
print("Subject 3 :", m3)
print("Total :", total)
print("Percentage :", round(percentage, 2), "%")

P26 set13_q2_random_datasets_stats.py
import random
import statistics

A = [[Link](1, 10) for _ in range(100)]


B = [[Link](1, 50) for _ in range(100)]
C = [[Link](1, 100) for _ in range(100)]

datasets = {"A (1-10)": A, "B (1-50)": B, "C (1-100)": C}

for name, data in [Link]():


mean = [Link](data)
median = [Link](data)
variance = [Link](data)
std_dev = [Link](data)

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"

for attempt in range(3):


username = input("Username: ")
password = input("Password: ")

if username == correct_username and password == correct_password:


print("Welcome,", username)
break
else:
print("Invalid Login")

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 = []

for row in range(2, ws.max_row+1):


marks = [[Link](row=row,column=col).value
for col in range(2,7)]

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")

for i in range(1, 11):


print(f"{num} x {i} = {num*i}")

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 = []

for math, science in X:


if math >= 40 and science >= 40:
[Link]("Pass")
else:
[Link]("Fail")

X_train, X_test, y_train, y_test = train_test_split(


X, y, test_size=0.3, random_state=1)

knn = KNeighborsClassifier(n_neighbors=3)

[Link](X_train, y_train)

prediction = [Link]([[55,38]])

print("Prediction:", prediction[0])

y_pred = [Link](X_test)

print("Accuracy =", accuracy_score(y_test, y_pred))


P31set16_q1_number_pattern.py
for i in range(1, 6):
for j in range(1, i+1):
print(j, end=" ")
print()

print()

for i in range(5, 0, -1):


for j in range(1, i+1):
print(j, end=" ")
print()

P32_q2_pie_chart.py
import [Link] as plt

products = ["Product A", "Product B", "Product C",


"Product D", "Product E", "Product F"]

market_share = [25, 15, 30, 10, 12, 8]

colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99','#c2c2f0','#ffb3e6']

# Explode the slice with the highest share


max_index = market_share.index(max(market_share))
explode = [0.1 if i == max_index else 0 for i in range(len(market_share))]

[Link](figsize=(7,7))
[Link](market_share, labels=products, colors=colors,
autopct='%1.1f%%', explode=explode, shadow=True, startangle=90)

[Link]("Market Share of Products")


[Link]()

# 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")

print("3rd Day =", days[2])

print("Last 3 Days =", days[-3:])

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))

# Simple linear regression (manual using numpy polyfit)


slope, intercept = [Link](hours, marks, 1)

print(f"Regression Equation: marks = {slope:.2f} * hours + {intercept:.2f}")

for h in [2, 5, 8]:


predicted = slope * h + intercept
print(f"Predicted marks for {h} study hours = {predicted:.2f}")
P35 set18_q1_attendance_array.py
attendance = []

for i in range(1, 11):


val = int(input(f"Enter attendance for Section {i}: "))
[Link](val)

print("\nAttendance of all sections:")


for i, val in enumerate(attendance, start=1):
print(f"Section {i}: {val}")

average = sum(attendance) / len(attendance)


print("\nAverage Attendance =", round(average, 2))

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)

for exp, sal in zip([8,12,20], predicted_salary):


print(f"Salary for {exp} years experience = {sal:.2f}")
P37 Q1 - set19_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

units = int(input("Enter units consumed: "))


bill = calculate_bill(units)
print(f"Electricity bill for {units} units = Rs.{bill}")

P38 - set19_q2_defects_histogram.py
import random
import [Link] as plt

# Generate defect data for 60 days (0-15 defects per day)


defects = [[Link](0, 15) for _ in range(60)]

print("Defects data (60 days):")


print(defects)

[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")

choice = input("Enter your choice: ")

if choice == "1":
name = input("Enter name: ")
phone = input("Enter phone number: ")
phonebook[name] = phone
print("Contact added.")

elif choice == "2":


name = input("Enter name to search: ")
if name in phonebook:
print(f"{name}: {phonebook[name]}")
else:
print("Contact not found.")

elif choice == "3":


name = input("Enter name to update: ")
if name in phonebook:
phone = input("Enter new phone number: ")
phonebook[name] = phone
print("Contact updated.")
else:
print("Contact not found.")

elif choice == "4":


name = input("Enter name to delete: ")
if name in phonebook:
del phonebook[name]
print("Contact deleted.")
else:
print("Contact not found.")

elif choice == "5":


print("\nAll Contacts (sorted by name):")
for name in sorted(phonebook):
print(f"{name}: {phonebook[name]}")

elif choice == "6":


print("Exiting Phonebook. Goodbye!")
break

else:
print("Invalid choice. Try again.")
P40_q2_milk_consumption_stats.py
import random

# Generate milk consumption data (litres) for 30 days


milk_data = [round([Link](1.0, 5.0), 2) for _ in range(30)]

print("Milk Consumption Data (30 days):")


print(milk_data)

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

print("\nMean =", round(mean, 2))


print("Variance =", round(variance, 2))
print("Standard Deviation =", round(std_dev, 2))
P41 _q1_school_data_excel.py
from openpyxl import Workbook, load_workbook

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"])

# Make Results the active sheet


[Link] = [Link]("Results")

[Link]("[Link]")

# Reload and print all data


wb = load_workbook("[Link]")

for sheet_name in [Link]:


ws = wb[sheet_name]
print(f"\n----- {sheet_name} -----")
for row in ws.iter_rows(values_only=True):
print(row)

P42_q2_dice_roll.py
import random

sums = []

for _ in range(1000):
dice1 = [Link](1, 6)
dice2 = [Link](1, 6)
[Link](dice1 + dice2)

print("Frequency of each sum (2-12):")


for value in range(2, 13):
count = [Link](value)
print(f"Sum {value}: {count} times")
P43 - set22_q1_modify_school_data.py
from openpyxl import load_workbook

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

# (b) Add a new row at the end with student details


[Link]([6, "Priya", "10A", 91, "A+"])

# (c) Delete the 2nd row (first student row, roll no 1)


ws.delete_rows(2)

[Link]("[Link]")

# (d) Reload and print all data to verify


wb = load_workbook("[Link]")
ws = wb["Students"]

print("Updated Students Sheet:")


for row in ws.iter_rows(values_only=True):
print(row)

P44 set22_q2_random_datasets_stats.py
import random
import statistics

A = [[Link](1, 10) for _ in range(100)]


B = [[Link](1, 50) for _ in range(100)]
C = [[Link](1, 100) for _ in range(100)]

datasets = {"A (1-10)": A, "B (1-50)": B, "C (1-100)": C}

for name, data in [Link]():


mean = [Link](data)
median = [Link](data)
variance = [Link](data)
std_dev = [Link](data)

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"

[Link](["Name", "Math", "Science", "English", "Total", "Average"])

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})"])

# Final row with column totals using SUM formula


total_row = start_row + len(students)
[Link](row=total_row, column=1).value = "Total"
for col in ["B", "C", "D", "E"]:
ws[f"{col}{total_row}"] = f"=SUM({col}{start_row}:{col}{total_row-1})"

[Link]("[Link]")

# Verify by reloading (formulas are stored, not calculated values)


wb = load_workbook("[Link]")
ws = [Link]

print("Saved Marks Workbook (formulas):")


for row in ws.iter_rows(values_only=True):
print(row)

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

mode = max(freq, key=[Link])

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))
P47 _q1_student_database.py
students = []

# (a) Add 5 students


for i in range(5):
print(f"\nEnter details for Student {i+1}:")
name = input("Name: ")
roll_no = input("Roll No: ")
m1 = float(input("Marks Subject 1: "))
m2 = float(input("Marks Subject 2: "))
m3 = float(input("Marks Subject 3: "))

[Link]({
"name": name,
"roll_no": roll_no,
"marks": [m1, m2, m3]
})

# (b) Search by roll number


search_roll = input("\nEnter roll number to search: ")
found = False
for s in students:
if s["roll_no"] == search_roll:
print("Student Found:", s)
found = True
break
if not found:
print("Student not found.")

# (c) Display top 3 students by average


students_sorted = sorted(students,
key=lambda s: sum(s["marks"]) / len(s["marks"]),
reverse=True)

print("\nTop 3 Students by Average:")


for s in students_sorted[:3]:
avg = sum(s["marks"]) / len(s["marks"])
print(f"{s['name']} (Roll {s['roll_no']}) - Average: {round(avg, 2)}")

# (d) Display all students who failed (average < 40)


print("\nFailed Students (Average < 40):")
for s in students:
avg = sum(s["marks"]) / len(s["marks"])
if avg < 40:
print(f"{s['name']} (Roll {s['roll_no']}) - Average: {round(avg, 2)}")

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 = []

for row in range(2, ws.max_row+1):


marks = [[Link](row=row,column=col).value
for col in range(2,7)]

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)

if average >= 90:


grade = "A+"
elif average >= 75:
grade = "A"
elif average >= 60:
grade = "B"
elif average >= 40:
grade = "C"
else:
grade = "F"

return total, average, grade

# (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)

# (c) Calculate total, average, grade using function


total, average, grade = calculate_total_average_grade(marks)

[Link]({
"name": name,
"roll": roll,
"marks": marks,
"total": total,
"average": average,
"grade": grade
})

# (d) Save to Excel file using Openpyxl


wb = Workbook()
ws = [Link]
[Link] = "Performance"

[Link](["Name", "Roll", "S1", "S2", "S3", "S4", "S5",


"Total", "Average", "Grade"])
for s in students:
[Link]([s["name"], s["roll"]] + s["marks"] +
[s["total"], round(s["average"], 2), s["grade"]])

[Link]("[Link]")
print("\nData saved to [Link]")

# (e) Plot bar chart of student averages


names = [s["name"] for s in students]
averages = [s["average"] for s in students]

[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

subjects = ["Math", "Science", "English", "Computer",


"Physics", "Chemistry", "Biology", "History"]

marks = [85, 78, 82, 90, 75, 80, 88, 72]

# Vertical Bar Chart


[Link](figsize=(8,5))
[Link](subjects, marks)
[Link]("Average Marks by Subject")
[Link]("Subjects")
[Link]("Marks")
[Link]()

# Horizontal Bar Chart with different colours per bar


colors = ['red','blue','green','orange',
'purple','brown','pink','cyan']

[Link](figsize=(8,5))
[Link](subjects, marks, color=colors)
[Link]("Average Marks by Subject")
[Link]("Marks")
[Link]("Subjects")
[Link]()

You might also like