2017-08-28 2 views
-2

Je dois créer une classe Car qui a les caractéristiques suivantes:Créer une classe Car en python

Il possède un attribut gas_level.

Il a un constructeur (init méthode) qui prend un flotteur représentant le niveau de gaz initial et définit le niveau de gaz de la voiture à cette valeur.

Il possède une méthode add_gas qui prend une seule valeur flottante et ajoute cette valeur à la valeur actuelle de l'attribut gas_level.

Il dispose d'une méthode fill_up qui règle le niveau de gaz de la voiture jusqu'à 13,0 en ajoutant la quantité de gaz nécessaire pour atteindre ce niveau. Il va retourner un flotteur de la quantité de gaz qui a dû être ajouté à la voiture pour obtenir le niveau de gaz jusqu'à 13,0. Cependant, si le niveau de gaz de la voiture était supérieure ou égale à 13,0 pour commencer, alors il n'a pas besoin d'ajouter quoi que ce soit et il retourne simplement 0.

Résultat devrait être:

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

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

Cette est ce que j'ai jusqu'ici. Je suis juste coincé dans les méthodes add_gas et 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()   
+0

qui ressemble à une décharge de devoirs ... De toute façon, si vous ne savez pas comment écrire En python, vous pouvez écrire l'algorithme en clair en tant que commentaire dans votre code, et vous aurez plus de chance d'obtenir de l'aide. –

+0

@GillesGouaillardet pensez-vous que c'est juste? – EnzoRad

+1

avez-vous exécuté votre programme et réussi les deux tests? –

Répondre

-1
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 
+0

fwiw, 'fill_up' est faux ... –

+0

il a passé tous les tests @GillesGouaillardet – EnzoRad

+0

de sorte que vous avez besoin d'écrire plus de tests, tels que la vérification de la valeur du réservoir de gaz après un' fill_up() ' –

0

Si je comprends bien tout ce que vous voulez est ce? Si le réservoir est inférieur à 13, vous le remplissez jusqu'à ce qu'il atteigne 13 et renvoyez la valeur ajoutée. else return 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 

Edit: Et pour tester vos besoins, j'ai RAN:

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

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

Cependant, il s'agit essentiellement de la même réponse EnzoRad a donné ... Donc, si ce n'est pas ce que vous cherchez, vous devrez spécifier un peu plus votre problème. ** EDIT: ** Aah tu as besoin d'ajouter le montant à self.x en effet c'est ce que nous avons oublié mais c'est facile à faire Je vais éditer ma réponse –