2016-01-29 42 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

相關問題