這是一個家庭作業的最後一個問題,它是造成我最煩惱。我花了這麼多時間,但我無法得到正確的結果。我不確定錯誤是什麼,我認爲這是一個邏輯錯誤。我不會總結,而是完整地複製作業,以避免混淆。解釋如何達成解決方案的詳細迴應也會有所幫助,因爲我希望更好地理解這個概念。
我們希望通過跟蹤我們目前擁有的每種 產品的數量來跟蹤我們商店的庫存。我們將使用名稱爲:金額鍵值 對的字典。該名稱是一個字符串,金額是一個整數。
我們將定義擱置函數,該函數接受字典作爲庫存 和(名稱,數字)對的列表,每個對都指示我們應該通過向其添加數字來更新該已命名產品的庫存。 (該數字可能是 否定的)。第二個參數被命名爲product_list。 第一次提及產品時,需要將其添加到 庫存字典中。當其數量達到零時,它應該保留在零庫存的 庫存中。但伯爵絕不能成爲負面的。 如果任何特定商品的庫存變爲負值,則必須提高 ValueError以指示某些商品的金額低於零。 - 返回值:無。 (對庫存進行更改)。 - 建議:使用try-except塊添加項目。 (儘管你可能會找到其他的解決方案,那沒關係)。 - 要求:每當一個項目的計數變爲負值時提高ValueErrors;在構造異常時使用 字符串「產品負數」。
例子:
d = {"apple":50, "pear":30, "orange":25}
ps = [("apple",20),("pear",-10),("grape",18)]
shelve(d,ps)
d
{'pear': 20, 'grape': 18, 'orange': 25, 'apple': 70}
shelve(d,[("apple",-1000)])
Traceback (most recent call last):
ValueError: negative amount for apple
我的代碼:
def shelve(inventory,product_list):
invt = {}
count = 0
try:
for x in product_list:
if x== True:
invt{x} = product_list.shelve{x}
count += key
except ValueError:
print ('negative amount for (product)')
其他例子:
檢查d = {"apple":50} shelve(d,[("apple",20),("apple",-30)])
修改d
是{"apple":40}
。
檢查shelve({}, [("apple",-20)])
是否產生了ValueError
。
謝謝你的幫助。
如果你擱置({},[('apple',-20),('apple,30)])'應該引發ValueError還是'{'apple':10}'會發生什麼? –
你有'除了ValueError'那裏 - 應該只是'ValueError'除外? –
@StevenSummers我認爲它應該返回{'apple':10} – Soccerninja