我正在定义一个名为“car”的类,我将它与一个在我的类上运行一系列测试的文档进行比较。然而,我在驱动法中得到了错误的答案,我不知道为什么。在
这是我的密码。驱动方法应该以汽车为参数,将其移动指定的英里数。如果汽车能在不耗尽燃料的情况下跑完所有的英里数,那么汽车就开始旅行并输出英里数,同时还会增加里程表。{0}不过,如果它还没开到油箱里,那它就不能开很久了。在
如果给出了任何无效的参数,那么这辆车就不能开了。每次在汽车测试程序中测试9时,它都会中断。因此,所有后续的都会破裂。下面我已经发布了我的代码,然后代码测试出来。在
你能帮我吗?我很感激#Define the class
class Car(object):
def __init__(self,fuelEfficiency=0,fuelCapacity=0,fuelLevel=0,odometer=0):
self.setCar(fuelEfficiency,fuelCapacity,fuelLevel,odometer)
def setFuelEfficiency(self,newFuelEfficiency):
self.setCar(fuelEfficiency = newFuelEfficiency)
def setFuelCapacity(self,newFuelCapacity):
self.setCar(fuelCapactity = newFuelCapacity)
def setFuelLevel(self,newFuelLevel):
self.setCar(fuelLevel = newFuelLevel)
def setOdometer(self,newOdometer):
self.setCar(odometer = newOdometer)
def setCar(self,fuelEfficiency = None,fuelCapacity = None,fuelLevel = None,odometer = None):
if fuelEfficiency == None:
fuelEfficiency = self.getFuelEfficiency
if fuelCapacity == None:
fuelCapacity = self.getFuelCapacity
if fuelLevel == None:
fuelLevel = self.getFuelLevel
if odometer == None:
odometer = self.getOdometer
self.fuelEfficiency = fuelEfficiency
self.fuelCapacity = fuelCapacity
self.fuelLevel = fuelLevel
self.odometer = odometer
def drive(self,miles):
if miles < 0:
return ("The car is not driven")
one_gallon = miles / self.fuelEfficiency
if one_gallon < self.fuelLevel:
print("The car drove {} miles".format(miles))
elif self.fuelLevel == 0:
print("The car drove 0 miles")
#else:
#newMiles = milesDriven * miles
#print("The car drove {} miles".format(newMiles))
self.fuelLevel -= one_gallon
self.odometer += miles
def getCar(self):
#Returns a tuple that has (FE,FC,FL,OD)
return (self.fuelEfficiency,self.fuelCapacity,self.fuelLevel,self.odometer)
def addFuel(self,num):
if type(num) == str:
return self.fuelLevel
if num < 0:
print("Sorry, you need to enter a postive number.")
return self.fuelLevel
if (self.fuelLevel + num) > self.fuelCapacity:
return self.getFuelLevel
if (self.fuelLevel + num) == self.fuelCapacity:
self.fuelLevel += num
return self.getFuelLevel
if (self.fuelLevel + num) < self.fuelCapacity:
self.fuelLevel += num
return self.getFuelLevel
def getFuelEfficiency(self):
return self.getCar()[0]
def getFuelCapacity(self):
return self.getCar()[1]
def getFuelLevel(self):
return self.getCar()[2]
def getOdometer(self):
return self.getCar()[3]
def tripRange(self):
numOfMiles = self.fuelEfficiency * self.fuelLevel
return numOfMiles
def __str__(self):
FE = self.getFuelEfficiency()
FC = self.getFuelCapacity()
FL = self.getFuelLevel()
OD = self.getOdometer()
string = '{}:{}:{}:{}'.format(FE,FC,FL,OD)
return string
这里有一个测试程序,如果类正常工作,它将与测试一起进行。如果一切都是固定的,输出将是“没有发现错误”
^{pr2}$