2016-01-29 77 views
-1
def hotel(days): 
    return days*50 

def plane_ticket(city): 
    city = {"Chicago": 180, "Boston": 170, "Orlando": 160,"Ciudad de Mexico" :100} 
return city 

def car(days): 
    rent=days*10 

    if days >= 7: 
    return rent -5 
    elif days >= 5: 
    return rent -1 
    else: 
    return rent 

def trip_cost(city, days, extras): 
    return sum([hotel(days),plane_ticket(city),car(days),extras]) 
print (trip_cost("Chicago",4,300)) 

我想分配给在字典中的串号的总和作为整数的Python - 类型错误:不支持的操作数类型(S)为+:“诠释”和“字典”

+0

'plane_ticket(城市)'是忽略的'city'被赋予的值,并且不是创建字典和顺便指出背面用'return' 。我想你的意思是在名称不同的字典中查找'city'的条目,并返回值 –

+0

,或许你的意思是:'def plane_ticket(city):return {“Chicago”:180,“Boston”:170 ,“奥兰多”:160,“墨西哥城”:100} [城市]' –

回答

3

相当易:

def plane_ticket(city): 
    cities = {"Chicago": 180, "Boston": 170, "Orlando": 160,"Ciudad de Mexico" :100} 
    return cities[city] 
3

你有这样的问题,因为你的plane_ticket功能没有返回你认为它是。

def plane_ticket(city): 
    city = {"Chicago": 180, "Boston": 170, "Orlando": 160,"Ciudad de Mexico" :100} 
    return city 

该函数返回整个字典city而不是单个值。

你需要做这样的事情:

def plane_ticket(city): 
    city_prices = {"Chicago": 180, "Boston": 170, "Orlando": 160,"Ciudad de Mexico" :100} 
    return city_prices[city] 

你不妨添加一些错误解决这个虽然检查。如果该函数通过您的字典中不存在的城市,您将会遇到错误。

使上述变化,打印出值720

相关问题