Question
Python Write a function record repair() that records a repair for a car and returns the total cost of all repairs for that car (including
Python
Write a function record repair() that records a repair for a car and returns the total cost of all repairs for that car (including the new repair). The function takes four arguments, in this order:
cars: a list of Car objects vin: the VIN for the car that we want to record a repair for repair desc: a description of the repair repair cost: the cost of the repair (an integer)
The function must search the list of Car objects for the car with the given vin, call the add repair method of the Car class with the given repair desc and repair cost to record a repair for the car, and then return the new total repair costs for the car. If no Car object is found in the list cars with the given vin, the function should simply return 0.
class Car: def __init__(self, vin, brand, model, year): self._vin = vin self._brand = brand self._model = model self._year = year self._repairs = [] def add_repair(self, repair_desc, repair_cost): self._repairs += [Repair(repair_desc, repair_cost)] def __repr__(self): return 'VIN: ' + self._vin + ' ' + \ ' Brand: ' + self._brand + ' ' + \ ' Model: ' + self._model + ' ' + \ ' Year: ' + str(self._year) + ' ' class Repair: def __init__(self, desc, cost): self._desc = desc self._cost = cost def __repr__(self): return self._desc + ': $' + str(self._cost) def record_repair(cars, vin, repair_desc, repair_cost): #write your code here return None
if __name__ == '__main__': def reset_car_database(): c01 = Car('XYZ123X', 'Toyota', 'Camry', 2012) c02 = Car('HSY113Y', 'Honda', 'Civic', 2016) c03 = Car('MZJ291E', 'Ford', 'Escape', 2009) c04 = Car('KJD922P', 'Jeep', 'Wrangler', 2011) c05 = Car('TRQ235K', 'Hyundai', 'Sonata', 2017) c06 = Car('JNH47GB', 'Toyota', 'Camry', 2011) c07 = Car('K83JDE3', 'Honda', 'Pilot', 2009) c08 = Car('MCJD83J', 'Hyundai', 'Elantra', 2013) c09 = Car('9EM2JSK', 'Toyota', 'Camry', 2002) c10 = Car('JF83JKS', 'Honda', 'Civic', 2012) c01.add_repair('Broken axle', 2900) c01.add_repair('Punctured tire', 40) c02.add_repair('Cracked windshield', 1000) c04.add_repair('Oil change', 45) c04.add_repair('New clearcoat', 550) c05.add_repair('Punctured tire', 30) c05.add_repair('Cracked windshield', 1000) c06.add_repair('Popped dents', 75) c06.add_repair('Broken headlight', 80) c06.add_repair('Broken taillight', 95) c07.add_repair('Rebuilt engine', 4880) c09.add_repair('Broken headlight', 80) c09.add_repair('Punctured tire', 80) c10.add_repair('Replaced windshield wipers', 125) car_list1 = [c02, c03, c05, c06, c07, c08, c09] car_list2 = [c01, c03, c04, c05, c06, c08, c09, c10] car_list3 = [c03, c04, c08] return car_list1, car_list2, car_list3
cars1, cars2, cars3 = reset_car_database() vin = 'HSY113Y' # car currently has at least one repair repair = 'Punctured tire' cost = 40 print('Testing record_repair() for cars1, {}, "{}", {}: {}'.format(vin, repair, cost, record_repair(cars1, vin, repair, cost))) vin = 'MZJ291E' # car currently has no repairs repair = 'Cracked rim' cost = 800 print('Testing record_repair() for cars1, {}, "{}", {}: {}'.format(vin, repair, cost, record_repair(cars1, vin, repair, cost))) vin = 'XYZ123X' # car not in cars1 list repair = 'Broken mirror' cost = 250 print('Testing record_repair() for cars1, {}, "{}", {}: {}'.format(vin, repair, cost, record_repair(cars1, vin, repair, cost)))Examples: While looking at the examples in this document, you should have open then provided lab8.py file so that you can see exactly what are the contents of cars1, cars2 and cars 3. Function Call Return Value record repair (cars1, HSY113Y, 'Punctured tire', 40) 1040 record-repair (cars1, 'MZJ2 91E', 'Cracked rim' 800) 800 record repair (cars1, 'XYZ123X', Broken mirror', 250) 0
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started