58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
class Car():
|
||
# Пробег
|
||
kilometer = 0
|
||
|
||
def fill(self, add_gas):
|
||
total = self.gas + add_gas
|
||
if total <= self.capacity:
|
||
self.gas += add_gas
|
||
print('залито', add_gas, 'топлива\n')
|
||
if total > self.capacity:
|
||
self.gas += (add_gas - (total - self.capacity))
|
||
print('залито до полного бака:', add_gas - (total - self.capacity), ',', total - self.capacity, '- лишние\n')
|
||
|
||
def ride(self, expense):
|
||
# Сколько можем проехать из желаемого
|
||
possible_drive = self.gas / self.per_km
|
||
|
||
# Сколко едем по факту
|
||
if expense < possible_drive:
|
||
fact_drive = expense
|
||
else: fact_drive = possible_drive
|
||
|
||
if fact_drive < expense:
|
||
print('Можем проехать только', fact_drive, 'км')
|
||
self.gas -= (fact_drive * self.per_km)
|
||
self.kilometer += fact_drive
|
||
self.per_km += ((self.per_km * 0.01 * fact_drive) / 100)
|
||
|
||
print('Проехано:', fact_drive, 'км\n')
|
||
|
||
def __init__(self, gas, capacity, per_km):
|
||
self.capacity = capacity
|
||
self.gas = gas
|
||
self.per_km = per_km
|
||
|
||
def __str__(self):
|
||
return 'Вместимость бака: ' + str(self.capacity) + '\nТоплива в баке: ' + str(self.gas) + '\nРасход на километр: ' + str(self.per_km) + '\nПробег:' + str(self.kilometer) +'\n'
|
||
|
||
|
||
c1 = Car(2, 40, 0.1)
|
||
print('Cтааартуем\n\n', c1, sep='')
|
||
|
||
while True:
|
||
expense = input('Сколько желаем проехать: \n (n - exit)')
|
||
if expense == 'n':
|
||
break
|
||
else:
|
||
c1.ride(int(expense))
|
||
|
||
if c1.gas <= 0:
|
||
print('Топливо закончилось!')
|
||
print('Залить до полного? y/n')
|
||
if input() == 'y':
|
||
c1.fill(c1.capacity)
|
||
else: break
|
||
|
||
print(c1)
|