[英]Product dictionary addition and subtraction
我需要編寫一個函數,該函數接受字典作為庫存,並且還接受(名稱,數字)對的product_list,它們指示何時應通過向其添加一定數量(可能為負數)來更新該產品的庫存。
首次提及產品后,將其添加到詞典中,並且當其計數達到零時,將保留在詞典中。 如果計數變為負數,則需要提出一個值錯誤。
例:
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
根據我是否包含最后一個打印行,我的代碼給出了意外的EOF錯誤或無效的語法。 目前肯定還沒有實現目標,但是我相信這是解決這一問題的格式和某種邏輯。 我需要函數來打印'x的負數',其中x是負數的水果。 任何幫助對此表示贊賞
碼:
def shelve(inventory,product_list):
count = 0
try:
for x in product_list:
if x == True:
product_list.append(x)
count += key
else:
return product_list
except ValueError:
print ('negative amount for (product)')
print "hello program starts here"
d = {"apple":50, "pear":30, "orange":25}
ps = [("apple",20),("pear",-10),("grape",18)]
shelve(d,ps)
任務的重要部分是將您的問題分解為多個子問題。 使用dict和list數據結構主要是基於對那些數據結構的迭代。 從簡單開始,一次執行一個步驟,因此解決問題的一種方法可能是:
1.)遍歷產品列表(您可以打印項目以查看發生了什么)。 這將是產品循環。
for x in ps:
print x
檢查如何訪問列表元素,例如將print x更改為print x [0]或x [1]
2.)現在,對於產品循環中的每個產品,您都需要迭代庫存並將庫存設置為相應的值。 首先僅迭代清單並打印其內容。 在做更復雜的事情之前,先檢查一下它是如何工作的,然后嘗試一下。 ^^-d(我剛剛發現有一個比迭代更簡單的解決方案,因為它是決定性的,所以您會知道該怎么做)
3.)現在添加Value錯誤和Exception東西
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.