-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathtransport.py
37 lines (26 loc) · 1.14 KB
/
transport.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Trip:
def __init__(self, dist, comment="Не регламентировано"):
self.distance = dist
self.comment = comment
class Transport:
def __init__(self, fuel):
self.fuel = fuel
self.trips = []
def add_trip(self, trip):
self.trips.append(trip)
def sum_trips_distance(self):
return sum(trip.distance for trip in self.trips)
def calculate_reachable_distance(self):
raise NotImplementedError()
class Car(Transport):
FUEL_CONSUMPTION_CAR = 0.12
def calculate_reachable_distance(self):
distance_covered = self.sum_trips_distance()
result = (self.fuel - (distance_covered * self.FUEL_CONSUMPTION_CAR)) // self.FUEL_CONSUMPTION_CAR
return f'Топлива осталось на {result} км'
class Airplane(Transport):
FUEL_CONSUMPTION_AIRPLANE = 200
def calculate_reachable_distance(self):
distance_covered = self.sum_trips_distance()
result = (self.fuel - (distance_covered * self.FUEL_CONSUMPTION_AIRPLANE)) // self.FUEL_CONSUMPTION_AIRPLANE
return f'Топлива осталось на {result} часов'