2016-07-25 90 views
-2

我在代碼學院的練習中爲假期費用制定了一個模型,並且我有至今定義的三個函數rental_car_costs,參數days,hotel_cost,參數nightsplane_ride_cost的參數爲city。代碼如下所示:超過最大遞歸深度:Code Academy;休假5/7

def hotel_cost(nights): 
     return hotel_cost(nights) 
     return 140 * nights 

    def plane_ride_cost(city): 
     return plane_ride_cost(city) 
     if "Charlotte": 
      return 183 
     elif "Tampa": 
      return 220 
     elif "Pittsburgh": 
      return 222 
     elif "Los Angeles": 
      return 475 

    def rental_car_cost(days): 
     rental_car_cost = 40 * days 
     if days >= 7: 
      rental_car_cost -= 50 
     elif days >= 3: 
      rental_car_cost -= 20 
     return rental_car_cost 

所有的作品,我都沒有問題,但我想創建一個名爲trip_cost功能,我不斷收到超過最大遞歸深度。該代碼看起來像這樣

def trip_cost(city, days): 
    return plane_ride_cost(city) + hotel_costs(days) + rental_car_cost(days) 

我晚上的值傳遞給天,以防萬一我試着反正代的夜晚,但我仍然得到完全相同的錯誤消息。我做錯了什麼,最大深度遞歸超過了什麼意思?

+0

歡迎使用stackoverflow。你的問題缺乏細節。閱讀此:http://stackoverflow.com/help/how-to-ask – Shubham

+0

我拿走了「返回hotel_cost(天)」,這是所謂的問題,但現在它說「plane_ride_cost('夏洛特')提出了一個錯誤:超過最大遞歸深度「我試圖帶走」返回plane_ride_cost(城市),並將其放在函數的其餘部分之下,但是當我這樣做時,它說坦帕返回183,而不是它的正確值220. – Nertfertsatwork

回答

0

這應該工作:

def hotel_cost(nights): 
    return 140 * nights 

def plane_ride_cost(city): 
    if city == "Charlotte": 
     return 183 
    elif city == "Tampa": 
     return 220 
    elif city == "Pittsburgh": 
     return 222 
    elif city == "Los Angeles": 
     return 475 

def rental_car_cost(days): 
    rental_car_cost = 40 * days 
    if days >= 7: 
     rental_car_cost -= 50 
    elif days >= 3: 
     rental_car_cost -= 20 
    return rental_car_cost 
+0

我一開始並沒有看到這個,從我認爲沒有答案的地方得到了小便。非常感謝 – Nertfertsatwork

+0

現在我得到這個錯誤「trip_cost('Los Angeles',8)引發了一個錯誤:不受支持的操作數輸入 - =:'str'和'int'「,並且所有內容與您輸入的內容完全相同,並且我的旅行代碼代碼如下所示:def trip_cost(days,city): return hotel_cost(days )+ rental_car_cost(city)+ plane_ride_cost(city) return trip_cost 我試過它作爲return trip_cost並返回trip_cost(天,夜) – Nertfertsatwork

0
def hotel_cost(nights): 
     return 140 * nights 
    def plane_ride_cost(city): 
     if city == ("Charlotte"): 
      return 183 
     elif city == ("Tampa"): 
      return 220 
     elif city == ("Pittsburgh"): 
      return 222 
     else: 
      return 475 
    def rental_car_cost(days): 
     if days >= 7: 
      return (40 * days) - 50 
     elif days >= 3: 
      return (40 * days) - 20 
     elif days < 3: 
      return (40 * days) 
     else: 
      return 0  
    def trip_cost(city, days): 
     return (hotel_cost(days) + plane_ride_cost(city) +   rental_car_cost(days)) 
     return trip_cost 

這個答案的工作。