2016-08-16 7 views
0

何が問題なのか分かりません。ここに私のコードです:車のクラスプログラムが更新された速度を表示しない

class CarClass(object): 
    def __init__(self,year_model,make): 
     self.__year_model=year_model 
     self.__make=make 
     self.__speed=0 

    def accelerate(self): 
     self.__speed+=5 

    def brake(self): 
     self.__speed-=5 

    def get_speed(self): 
     return self.__speed 

#create car1 object 
car1=CarClass(2013,'TATA') 
#updates speed of car 
car1.accelerate() 
print('The current speeed is:') 
car1.get_speed() 
car1.accelerate() 

car1.accelerate() 
print('The current speeed is:') 
car1.get_speed() 
car1.accelerate() 

car1.accelerate() 
print('The current speeed is:') 
car1.get_speed() 
car1.accelerate() 

car1.accelerate() 
print('The current speeed is:') 
car1.get_speed() 
car1.accelerate() 

そして、ここに私のコードの出力です:

The current speeed is: 
The current speeed is: 
The current speeed is: 
The current speeed is: 
The current speeed is: 
The current speeed is: 

それはそれは5回インクリメントされるたびに速度を表示しなければならないが、それは任意の速度が表示されていません。私はこのコードをしばらく使っていますが、進歩はありません。

+0

try 'print( '現在のスピードは' + str(car1.get_speed())' –

答えて

1

あなたがPythonインタプリタにcar1.get_speed()を入力すると、あなたが返された値はすべての権利を取得していますが、プログラムを実行しているとき、あなたは例えば次のように明示的にそれを印刷する必要があります。そうでない場合は、すべての

print('The current speeed is:'+str(car1.get_sp‌​eed())) 

(リターンコードは無視された場合None以外の何かを返すメソッドは、コンソールにすべての時間をナンセンスの多くを出力します)

1

ここにあなたのコードの作業例です:

class CarClass(object): 

    def __init__(self, year_model, make): 
     self.__year_model = year_model 
     self.__make = make 
     self.__speed = 0 

    def accelerate(self): 
     self.__speed += 5 

    def brake(self): 
     self.__speed -= 5 

    def get_speed(self): 
     return self.__speed 


# create car1 object 
car1 = CarClass(2013, 'TATA') 

# updates speed of car 
for i in range(4): 
    car1.accelerate() 
    print('The current speeed is: {0}'.format(car1.get_speed())) 
    car1.accelerate() 

ご覧のとおり、加速後に車の速度が表示されているので、印刷するのを忘れてしまいました。また、コードブロックのcopy & pasteを避けるようにしてください。これは反パターンです。

関連する問題