2016-07-28 9 views
1

Also ich bin wirklich neu (3 Tage) und ich bin auf Code-Akademie, ich habe diesen Code für eine der Aktivitäten geschrieben, aber wenn ich es ausführen zeigt maximale Rekursion Tiefe Fehler, ich bin es laufen in der Python-Konsole von Code Academy und gleichzeitig auf meiner eigenen ipython-Konsole. Der Hinweis auf der Seite ist nicht hilfreich, kann jemand erklären, wie man das repariert? Dankmaximaler Rekursionstiefehler?

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

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

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

def trip_cost(city, days): 
    return hotel_cost(nights) + plane_ride_cost(city) + rental_car_cost(days) 
+0

* edit * Ich bin mir der Schreibfehler: ') –

Antwort

1

Vielleicht:

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

Der Fehler war:

Die plane_ride_cost(city) genannt plane_ride_cost("Charlotte") in jeder Rekursion Schritt.

nicht die beste, aber ein besserer Ansatz:

def hotel_cost(nights): 
    return nights * 140 

plane_cost = { 
    'Charlotte' : 183, 
    'Tampa' : 220, 
    'Pittsburgh' : 222, 
    'Los Angeles' : 475, 
} 

def plane_ride_cost(city): 
    if city not in plane_cost: 
     raise Exception('City "%s" not registered.' % city) 
    else: 
     return plane_cost[city] 

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

def trip_cost(city, days): 
    return hotel_cost(nights) + plane_ride_cost(city) + rental_car_cost(days) 
+0

besser verwenden, um eine 'dict', heben einen' Exception' wenn 'Stadt 'Nicht im Diktat. –