2015-12-23 84 views
2

我剛剛學習python並使用codecademy學習基礎知識,但是我陷入了一個練習,希望你們可以用這個練習。不能解決初學者級別的python練習

該課程首先要我定義一個名爲compute_bill的函數,並給它一個參數food。 然後給total初始值0然後對於food中的每個item列表將它們的值加到total並最後返回total

這是預先列出的價格和庫存號碼。

shopping_list = ["banana", "orange", "apple"] 

stock = { 
    "banana": 6, 
    "apple": 0, 
    "orange": 32, 
    "pear": 15 
} 

prices = { 
    "banana": 4, 
    "apple": 2, 
    "orange": 1.5, 
    "pear": 3 
} 

,這是我寫但小功能當然不接受它說compute_bill([「蘋果」])導致類型錯誤:不支持的操作數類型(一個或多個)爲+ =:「INT」與「STR」

def compute_bill(food): 
    total = 0 
    for item in food: 
     total += item 
    return total 

它可能是你最一個非常愚蠢的問題,但我只是無法理解什麼是它的問題。

+0

好吧,如果你叫它爲'compute_bill([ '蘋果'])'你想添加''apple''和' 0'。 –

+0

錯誤說明了這一切,你添加int(總數= 0)和一個字符串(食物中的物品)。更改**總額+ =項目**到**總額+ =價格[項目] ** – shiva

回答

2

您正在幾個錯誤:

1) 「食品」 名單。每個元素都有一個字符串。你不能在Python中給一個數字添加一個字符串(並且它是沒有意義的)。

2)你真正想要做的是使用「食物」中的元素作爲關鍵詞,然後從「價格」這個字典中獲得價格。

一個提示:獲得從價格元素「蘋果」的值,你必須做一些事情,如:

apple_price = prices['apple'] 

這會給你從「價格」項下的關鍵「蘋果存儲條目',這是一個等於2的整數。你可以用這個價格來計算總數。

另一個提示:遍歷「食物」中的元素,並使用這些元素從「價格」字典中檢索相應的價格。

祝你好運:)

+1

非常感謝提示和提示。 –

+0

不客氣!學習成功。 – Ashalynd

0

嘗試:

total += prices[item] 

在問題的代碼是不是指價格在所有。

1

你幾乎擁有它。 for循環遍歷食物[]數組中的每個字符串,並使用該字符串查找價格字典中的價格。

def compute_bill(food): 
    total = 0 
    for key in food: 
     total += prices[key] 
    return total 
+0

我認爲完全解決某人應該自己來... – Ashalynd

1

我希望我可以給你所有的給予好評。非常感謝我剛剛看到的我的多麼愚蠢的答案和建議。

def compute_bill(food): 
    total = 0 
    for key in food: 
     total += prices[key] 
    return total 

這只是做的伎倆

0
def compute_bill(food) : 
    total = 0 
    for item in food : 
     if stock[item] != 0 : 
      total = total + prices[item] 
      #you also need to update the stock table i won't do it here 
    return total 

food = {"banana","apple","orange"} 
print compute_bill(food)