Python 2.7 最大递归深度错误?

Python 2.7 最大递归深度错误?,python-2.7,recursion,Python 2.7,Recursion,所以我对这一点很陌生(3天),我在代码学院,我为其中一个活动编写了这段代码,但当我运行它时,它会显示最大递归深度错误,我在代码学院的python控制台上运行它,同时在我自己的ipython控制台上运行。页面上的提示没有帮助,有人能解释一下如何解决这个问题吗? 谢谢 def hotel_cost(nights): return (nights * 140) def plane_ride_cost(city): if plane_ride_cost("Charlotte"):

所以我对这一点很陌生(3天),我在代码学院,我为其中一个活动编写了这段代码,但当我运行它时,它会显示最大递归深度错误,我在代码学院的python控制台上运行它,同时在我自己的ipython控制台上运行。页面上的提示没有帮助,有人能解释一下如何解决这个问题吗? 谢谢

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)

可能:

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)
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)
错误是:

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)
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)
在每个递归步骤中,
plane\u-ride\u-cost(city)
称为
plane\u-ride\u-cost(“夏洛特”)

不是最好的,而是更好的方法:

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)
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)

编辑我注意到拼写错误:')最好使用
dict
,如果
city
不在dict中,则提出
异常。