2015-06-06 30 views
-1

我試圖利用TeamTreehouse學習訂閱&這開始與編程邏輯和設計(第3版)書,以嘗試學習編程& Python。請不要開槍殺我,我正在學習。Python 3.x方法不是從一個減法/加法開始

目標:我正在設置具有3個屬性的Vehicle類; yearModel,make,我需要稍後調用方法5次的速度對速度屬性採取行動。速度屬性必須添加5次,然後調用另一個方法來完成減法。

什麼沒有發生:我第一次稱加速方法時,車輛應該以5英里/小時的速度行駛,或者那是我的目標。

研究/故障排除:我一直在玩while while循環/做while循環而不是for循環,雖然老實說,我在這裏發佈這裏沒有太多的參考。我覺得我忽略了一些東西,因爲我一直在這麼做。

網址:http://repl.it/rQs/29

代碼:

#///////////Create Vehicle Object Template////////////////////// 
# .self variables yearModel, make, speed 

class Vehicle: 
    __yearModel = int() 
    __make = str("") 
    __speed = int(0) 

#///////////Object Constructor////////////////////// 
# .self variables yearModel, make, speed 

    def __init__(self, yearModel, make): 
     self.__yearModel = yearModel 
     self.__make = make 
#///////////Object Constructor////////////////////// 

#///////////METHODS aka functions in the object//////////////////////  

#///////////////MODEL////////////// 
# .self variables yearModel, make, speed 

    def setyearModel(self, yearModel): 
     self.__yearModel = yearModel 

    def getyearModel(self): 
     return self.__yearModel 

#///////////////MODEL//////////////   

#///////////////MAKE////////////// 
# .self variables yearModel, make, speed 

    def getmake(self): 
     return self.__make 

    def setmake(self, make): 
     self.__make = make 

#///////////////MODEL////////////// 

#//////////////SPEED////////////// 
# .Self variables yearModel, make, speed 

    def setSpeed(self, speed): 
     self.__speed = speed 

    def getSpeed(self): 
     return self.__speed 
#//////////////SPEED////////////// 

#//////////////ACCELERATE////////////// 
# .self variables yearModel, make, speed 
    def accelerate(self): 
     self.__speed = self.__speed + 5 
     if(self.__speed < 0): 
      self.__speed = 0 
#   print(self.speedy()) 

#  i = 0; 
#  for i in range(5): 
#   if (i <= 5): 
#    self.__speed = self.__speed + 5 
#    self.speedy()     
#   else: 
#    break 
#  i += 1 
#//////////////SPEED////////////// 

#//////////////BRAKE////////////// 
# .self variables yearModel, make, speed 

    def brake(self): 

     self.__speed = self.__speed - 5 
     if(self.__speed < 0): 
      self.__speed = 0 
#   print(self.speedy()) 

#  i = 0; 
#  for i in range(5): 
#   if (i <= 5): 
#    self.__speed = self.__speed - 5 
#    self.speedy()     
#   else: 
#    break 
#  i += 1 

# def brake(self): 
#  self.__speed = self.__speed - 5 
#  if(self.__speed < 0): 
#   self.__speed = 0 
#//////////////BRAKE////////////// 

#//////////////PRINT////////////// 
# .self variables yearModel, make, speed 

    def speedy(self): 
     print("The speed of the {} {} is currently {} MPH as it accelerates.".format(self.__yearModel,self.__make,self.__speed, end = "")) 

    def speedyDown(self): 
     print("The speed of the {} {} is currently {} MPH as it brakes.".format(self.__yearModel,self.__make,self.__speed, end = "")) 

#//////////////PRINT////////////// 

#///////////METHODS aka functions in the object^^^////////////////////// 

#////////////////////// Object Initialization myVehicle/////////////// 

#////////////////////// User Inputs Section/////////////// 
def userInputs(): 
    yearModel=input("What is the year and model of the vehicle?\n""Example: 1920 Modelt T.\n") 
    make=input("What automobile manufacturer made it?\n") 
    return yearModel, make 

yearModel,make=userInputs() 

#///////////Create Car Object Template^^^////////////////////// 

myVehicle=Vehicle(yearModel,make) 

#///////////Create Car Object Template^^^////////////////////// 
print(myVehicle.speedy()) 
def speedAcceleratePrintout(): 
    i = 0; 
    for i in range(5): 
     if (i <= 5): 
      myVehicle.accelerate() 
      print(myVehicle.speedy()) 
#  elif (i>5 and i<-10): 
#   myVehicle.brake()   
     else: 
      break 
    i += 1 

def speedBrakePrintout(): 
    i = 0; 
    for i in range(5): 
     if (i <= 5): 
      myVehicle.brake() 
      print(myVehicle.speedyDown()) 
     else: 
      break 
    i += 1 

speedAcceleratePrintout() 
speedBrakePrintout() 
#print(myVehicle.speedy()) 
#////////////////////// Object Initialization myCar^^^/////////////// 
+0

我想我可能因爲我的問題缺乏清晰度而被投票表決。我不明白爲什麼從「def speedAcceleratePrintout():」開始的第一個打印是以下內容(1920模型t ford的速度當前爲0 MPH,因爲它加速了。) – L2g2h

+0

在此代碼中,我只有一個循環在我的爲了演示預期的結果,在方法中循環。首先從加速方法打印出的數據應該是5,這樣當調用制動方法時,可以在5次調用中回到0速度以加速和制動方法http://repl.it/rQs/33 – L2g2h

回答

0

我相信你的問題是,你應該使用單下劃線(_),而不是雙inderscore(__)。見this answer

相關問題