
Добавил:
useruser123
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Григорьев ЛР / 7 / parking_final
.pyfrom typing import List
class Car:
def __init__(self, manufacturer: str, model: str, license_plate: str):
self.manufacturer = manufacturer
self.model = model
self.license_plate = license_plate
class ParkingLot:
def __init__(self, max_cars: int):
self.max_cars = max_cars
self.cars_in_lot: List[Car] = []
def add_car(self, car: Car) -> bool:
if len(self.cars_in_lot) < self.max_cars:
self.cars_in_lot.append(car)
return True
else:
return False
def remove_car(self, car: Car) -> bool:
if car in self.cars_in_lot:
self.cars_in_lot.remove(car)
return True
else:
return False
def remove_manufacturer(self, manuf: str):
if not any(car.manufacturer == manuf for car in self.cars_in_lot):
print("Марки",manuf,"нет на парковке")
return False
new_cars_in_lot = []
for car in self.cars_in_lot:
if car.manufacturer != manuf:
new_cars_in_lot.append(car)
self.cars_in_lot = new_cars_in_lot
if len(self.cars_in_lot) != len(new_cars_in_lot):
return True
def search_car_by_license_plate(self, license_plate: str) -> Car:
for car in self.cars_in_lot:
if car.license_plate == license_plate:
return car
return None
def num_of_cars(self) -> int:
return len(self.cars_in_lot)
def cars_print(self):
print("Максимальная вместимость:",self.max_cars)
print("Машины на парковке:")
for car in self.cars_in_lot:
print(car.manufacturer, car.model, car.license_plate)
def testing():
parking_lot = ParkingLot(2)
car_1 = Car("Toyota", "Corolla", "а111аа")
parking_lot.add_car(car_1)
car_2 = Car("Honda", "Civic", "б222бб")
parking_lot.add_car(car_2)
car_3 = Car("BMW", "X5", "в333вв")
assert parking_lot.add_car(car_3) == False
assert parking_lot.search_car_by_license_plate("а111аа") == car_1
assert parking_lot.search_car_by_license_plate("д322дд") == None
assert parking_lot.remove_car(car_2) == True
assert parking_lot.remove_car(car_2) == False
assert parking_lot.num_of_cars() == 1
try:
print(parking_lot.cars_in_lot[2])
except IndexError:
print("Парковка заполнена!")
parking_lot.cars_print()
testing()
print("///")
def remove_manufacturer_test():
parking_lot = ParkingLot(5)
car_1 = Car("Toyota", "Corolla", "а111аа")
car_2 = Car("Toyota", "Corolla2", "а222аа")
car_3 = Car("Honda", "Civic", "б222бб")
parking_lot.add_car(car_1)
parking_lot.add_car(car_2)
parking_lot.add_car(car_3)
parking_lot.cars_print()
print("///")
parking_lot.remove_manufacturer("Toyot")
parking_lot.cars_print()
remove_manufacturer_test()
Соседние файлы в папке 7