/ask write a python program which used for parking different cars by taking a money
python
class Parking():
parking_spots = {
'motorcycle': 20,
'car': 50,
'truck': 10
} # количество парковочных мест для каждого типа автомобилей
parking_prices = {
'motorcycle': 5,
'car': 10,
'truck': 15
} # стоимость парковки за час для каждого типа автомобилей
def __init__(self):
self.parking_lot = {
'motorcycle': [],
'car': [],
'truck': []
} # список автомобилей на парковке каждого типа
self.revenue = 0 # общая выручка от парковки
def park_car(self, car_type, car_number, park_time):
if car_type not in self.parking_spots.keys():
print('Invalid car type')
elif len(self.parking_lot[car_type]) >= self.parking_spots[car_type]:
print('No available parking spots for this type of car')
else:
self.parking_lot[car_type].append([car_number, park_time])
print(f'{car_type} {car_number} parked for {park_time} hour(s).')
self.revenue += park_time * self.parking_prices[car_type]
def unpark_car(self, car_type, car_number):
if car_type not in self.parking_spots.keys():
print('Invalid car type')
else:
for car in self.parking_lot[car_type]:
if car[0] == car_number:
park_time = car[1]
self.parking_lot[car_type].remove(car)
print(f'{car_type} {car_number} unparked after {park_time} hour(s). Total cost is {park_time * self.parking_prices[car_type]}$.')
self.revenue += park_time * self.parking_prices[car_type]
return
print(f'{car_type} {car_number} is not parked here.')
def check_parking_status(self):
print(f'Motorcycle spots available: {self.parking_spots["motorcycle"] - len(self.parking_lot["motorcycle"])}.')
print(f'Car spots available: {self.parking_spots["car"] - len(self.parking_lot["car"])}.')
print(f'Truck spots available: {self.parking_spots["truck"] - len(self.parking_lot["truck"])}.')
def check_revenue(self):
print(f'Total revenue: {self.revenue}$')
В данном коде создается класс Parking, в конструкторе которого инициализируются необходимые переменные. Также определяются основные методы для работы программы:
1. park_car - метод, который принимает тип автомобиля, его номер и время парковки в часах. Если все условия выполнены, автомобиль добавляется на парковку и общая выручка увеличивается.
2. unpark_car - метод, который принимает тип автомобиля и его номер, и удаляет его с парковки. Если все условия выполнены, то также рассчитывается стоимость затраченного времени и общая выручка увеличивается.
3. check_parking_status - метод, с помощью которого можно проверить количество свободных парковочных мест для каждого типа автомобилей.
4. check_revenue - метод, который выводит текущую выручку от парковки всех автомобилей.
Таким образом, данный код может быть использован для создания программы, которая будет помогать управлять парковкой различных типов автомобилей и собирать деньги за их парковку.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет