2016-07-25 20 views
-2

Ich mache ein Modell für Urlaubskosten in einem Code-Akademie-Übung, und ich habe drei Funktionen definiert, rental_car_costs mit dem Argument days, hotel_cost mit dem Argument nights, und plane_ride_cost mit dem Argument der city. Der Code sieht wie folgt aus:Maximale Rekursionstiefe überschritten: Code Academy; Urlaub machen 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 

Alles, was funktioniert und ich habe kein Problem damit, aber ich möchte eine Funktion trip_cost, und ich erhalte eine maximale Rekursionstiefe überschritten genannt machen. Der Code sieht wie folgt aus

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

ich den Wert der Nächte zu Tage vergehen, und nur für den Fall habe ich versucht Nächte in ohnehin ersetzen, aber ich habe noch genau die gleiche Fehlermeldung. Was mache ich falsch und was bedeutet maximale Tiefenrekursion?

+0

Willkommen bei stackoverflow. Ihrer Frage fehlen Details. Lesen Sie dies: http://StackOverflow.com/Help/How-to-Arts – Shubham

+0

Ich nahm die "Return Hotel_Cost (Tage)", die als das Problem angegeben wurde, aber jetzt heißt es "plane_ride_cost ('Charlotte ') einen Fehler ausgelöst: maximale Rekursionstiefe überschritten "Ich habe versucht, die" return plane_ride_cost (city) wegzunehmen und sie unter den Rest der Funktion zu stellen, aber wenn ich das tue, sagt es, dass tampa 183 zurückgibt anstatt dessen korrekten Wert von 220. – Nertfertsatwork

Antwort

0

sollte diese Arbeit:

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

Ich habe das zuerst nicht gesehen und wurde pissig von dem, was ich dachte, war das Fehlen einer Antwort Vielen Dank – Nertfertsatwork

+0

Ich bekomme diesen Fehler jetzt "trip_cost ('Los Angeles', 8) hat einen Fehler ausgelöst: nicht unterstützter Operand Typ (en) für - =: 'str' und 'int' "und alles ist genau das gleiche wie du es eingibst und mein Code für die Reisekosten sieht so aus - def trip_cost (Tage, Stadt): return hotel_cost (days) + rental_car_cost (Stadt) + plane_ride_cost (Stadt) zurück trip_cost und ich habe es als Rückfahrt trip_cost versucht und trip_cost (Tage, Nächte) zurück – 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 

diese Antwort gearbeitet.