class car():
def __init__(self,make,model,year,fuel_capacity,perkilometer):
self.make = make
self.model = model
self.year = year
self.fuel_capacity = fuel_capacity
self.perkilometer = perkilometer
self.fuel_level = 0
def fill_tank(self):
"""fills the tank full capacity"""
self.fuel_level = self.fuel_capacity
print 'Tank is Full'
def drive(self):
"""drives untill out of gas"""
print 'car is moving'
i = 0
while 0 <= self.fuel_level:
self.fuel_level -= self.perkilometer
print '%s kilometres' % (self.fuel_level-(self.fuel_level-i))
i+=1
print 'out of gas'
def travel(self,kilometer):
"""travels for distance given"""
self.kilometer = kilometer
print 'Car is moving'
i=0
while 0!=kilometer:
kilometer-=1
i+=1
if self.fuel_level >= self.perkilometer:
self.fuel_level -= self.perkilometer
print '%s kilometres' % (kilometer - (kilometer - i))
elif self.fuel_level < self.perkilometer:
self.fuel_level=0
print 'Out of Gas'
return 0
elif self.fuel_level == 0:
print 'Out of Gas'
return 0
print 'Reached to destination'
def continue_driving(self):
distance_left = self.kilometer - self.fuel_level / self.perkilometer
leters_needed = distance_left * self.perkilometer
if distance_left<=self.fuel_level/self.perkilometer:
print 'Have enough gas to continue'
else:
print 'Need %s leter more'% leters_needed
def update_fuel_level(self,new_level):
if new_level <= self.fuel_capacity:
self.fuel_level = new_level
print 'Tank has %s leters' % self.fuel_level
else:
print "Tank can't hold that much"
def add_fuel(self,amount):
"""adds fuel to gas tank"""
if self.fuel_level+amount<=self.fuel_capacity:
self.fuel_level+=amount
print 'Added fuel %s leters '%amount
else:
print "Tank won't hold that much"
#somehow fuel level is not updating after or in add_fuel func.
my_car = car('hyundai','i20','2016','45',0.083)
my_car.fuel_level = 2
my_car.travel(50)
my_car.add_fuel(1)
my_car.continue_driving()
输出:
^{pr2}$我用python做了这辆车,但当我使用continue_driving
方法时,似乎fuel_level
不更新就找不到错误。在
我想做的主要是计算油箱里的汽油是否足够,如果不给油箱加油的话。在
你可以看到,当我运行这个代码,它说我们需要3.15升,但它应该是8.3/2-(1+2)=2.15
您没有跟踪行驶距离。
你试图根据你消耗的燃料和每公里的升数来计算你的剩余距离。在
在使用代码计算
^{pr2}$distance_left
之前,您的代码正在增加self.fuel_level
。在我建议你追踪行驶的距离。在
然后每次旅行都增加
相关问题 更多 >
编程相关推荐