簡體   English   中英

產品字典加減法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM