【问题标题】:Create a Car class in python在python中创建一个汽车类
【发布时间】:2018-02-05 05:37:09
【问题描述】:

我必须创建一个具有以下特征的 Car 类:

它有一个 gas_level 属性。

它有一个构造函数(init 方法),它接受一个代表初始油量的浮点数并将汽车的油量设置为此值。

它有一个 add_gas 方法,它接受一个浮点值并将这个数量添加到 gas_level 属性的当前值。

它有一个 fill_up 方法,通过添加达到这个水平所需的汽油量,将汽车的汽油水平设置为 13.0。它将返回必须添加到汽车中的汽油量的浮点数,以使汽油水平达到 13.0。但是,如果汽车的油位一开始就大于或等于 13.0,则无需添加任何内容,只需返回 0。

结果应该是:

example_car = Car(9)
print(example_car.fill_up())  # should print 4

another_car = Car(18)
print(another_car.fill_up()) # should print 0

这是我目前所拥有的。刚刚卡在 add_gas 和 fill_up 方法中。

class Car:
   def __init__(self, gas_level_x):
      self.x = gas_level_x
   def add_gas(self):
      return ((self.x + 

   def fill_up(self):
      return  

def main():
   ex_car = Car(9)
   print(ex_car.fill_up())             

if __name__ == "__main__":
   main()        

【问题讨论】:

  • 这看起来像一个家庭作业转储......无论如何,如果你不知道如何用python编写它,你可以用简单的英文写算法作为代码中的注释,你会更有可能得到一些帮助。
  • @GillesGouaillardet 你认为这是对的吗?
  • 你的程序运行了吗,两次测试都顺利通过了吗?

标签: python object constructor attributes initializer


【解决方案1】:

如果我理解正确,你想要的就是这个? 如果油箱低于 13,则将其装满,直到 13 并返回附加值。 否则返回 0

class Car:
    def __init__(self, gas_level_x):
        self.x = gas_level_x

    def add_gas(self, gas):
        self.x += gas

    def fill_up(self):
        added = 13-self.x
        self.x += added # Or call self.add_gas(added) if for some reason you want to use the method
        if added > 0:
            return added
        return 0

编辑:为了测试您的要求,我已经运行了:

car = Car(9)
print(car.fill_up()) # Prints 4

car = Car(18)
print(car.fill_up()) # Prints 0

【讨论】:

  • 然而,这与 EnzoRad 给出的答案基本相同......因此,如果这不是您要查找的内容,则必须更多地说明您的问题。 编辑: 啊,对了,你需要将金额添加到 self.x 中,这确实是我们忘记的,但很容易做到,我会编辑我的答案
【解决方案2】:
class Car:

  def __init__(self, init_g):
    self.g = init_g
  def add_gas(gas):
    self.g = self.g + gas

  def fill_up(self):
    if self.g < 13:
        return 13 - self.g
    else:
        return 0 

【讨论】:

  • 它通过了所有测试@GillesGouaillardet
  • 所以你需要多写一些测试,比如检查fill_up()之后的油箱值
猜你喜欢
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
相关资源
最近更新 更多