
Python Proctored Assessment Programming solution 28th December
​
​
​
Question 1
Create a class called apartment with attributes flatnumber,owner name,electicity bill amount.
Create another class apartment_demo with def init(self): pass ​ to create a method getSecondMinBill that takes the list of objects and gives the second minimum electricity bill as output.
​
​
input:
3(no of objects to be created)
1000
Hari
5000
1001
Hena
5002
1002
Harsha
5001
​
output:
5001 (since it is the second minimum bill amount among the bills)
​
Solution:
​
class Apartment:
def __init__(self,no,name,eb):
self.no=no
self.name=name
self.eb=eb
class Getsecondminbill:
def __init__(self):
pass
def calc(self,l):
m=[]
for i in l:
m.append(i.eb)
m.sort()
return m[1]
if __name__=='__main__':
l=[]
count=input()
for i in range(count):
no=input()
name=raw_input()
eb=input()
l.append(Apartment(no,name,eb))
demo=Getsecondminbill()
m=demo.calc(l)
print m
​
​
​
Question 2
Create a class Bill with attributes mobile number and payment bill.
Create another class mobile with attributes service provider, mobile number, data used, payment method.
Service provider maybe airtel or jio. Data used is integer values in Gigabytes(GB). Payment method maybe paytm,gpay,amazon and so on.
Create a method calculate bill that takes the list of objects and calculates the bill and returns the list of objects of class bill with mobile number and payment bill.
​
The payment is calculated as follows:
​
1.If the service provider is airtel, the bill is Rs.11 for every 1GB used and if it is jio, the bill is Rs.10 for every 1GB used.
2. If the payment method is paytm there is a cashback of 10% of the total bill for airtel users only. The bill is calculated and rounded off after deducing the cashback value.
​
input:
​
3(No of objects to be created)
airtel
123
16
paytm
airtel
456
10
amazon
jio
788
10
paytm
​
Output:
​
(123,158)
(456,110)
(789,100)
​
​
​
Solution:
​
class Bill:
def __init__(self,no,b):
self.no=no
self.b=b
class Mob:
def __init__(self,sp,no,net,p):
self.sp=sp
self.no=no
self.net=net
self.p=p
def calc(self,l):
m=[]
for i in l:
if i.sp=="airtel":
b=i.net*11
if i.p=="paytm":
b-=(0.1*b)
elif i.sp=="jio":
b=i.net*10
m.append(Bill(i.no,int(b)))
return m
if __name__=='__main__':
l=[]
count=input()
for i in range(count):
sp=raw_input()
no=input()
net=input()
p=raw_input()
l.append(Mob(sp,no,net,p))
demo=Mob("",0,0,"")
m=demo.calc(l)
for i in m:
print i.no,i.b
​
​
​