【问题标题】:Product dictionary addition and subtraction产品字典加减法
【发布时间】:2016-11-15 08:35:37
【问题描述】:

我需要编写一个函数,该函数接受一个字典作为库存以及一个 (name, number) 对的 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)

【问题讨论】:

  • python 3 要求你使用print("string")
  • 感谢刚刚解决了这个问题
  • 鉴于大量的逻辑错误,您可能需要比从 Stack Overflow 获得的更多帮助。这看起来也像是一个家庭作业问题:如果是这种情况,我会向你们学校寻求额外的帮助。
  • 您在检索参数后将参数设置为空字典和空列表。不要那样做。
  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布代码并准确描述问题之前,我们无法有效地帮助您。

标签: python python-3.x dictionary math product


【解决方案1】:

您任务的重要部分是将您的问题分解为子问题。使用 dict 和 list 数据结构主要是基于对这些数据结构的迭代。从简单开始,一步一步做。所以解决问题的一种方法可能是:

1.) 遍历产品列表(您可以打印项目以查看发生了什么)。这将是产品循环。

for x in ps:
    print x

检查如何访问列表元素,例如将 print x 更改为 print x[0] 或 x[1]

2.) 现在对于产品循环中的每个产品,您需要迭代库存并将库存设置为相应的值。首先迭代库存并打印其内容。在做更复杂的事情之前看看它是如何工作的,玩弄它。 ^^-d (我刚刚注意到有一个比迭代更简单的解决方案,因为它是一个字典,你会知道该怎么做)

3.) 现在添加值错误和异常的东西

希望对你有帮助

【讨论】:

  • 感谢您的深入解释,如果我需要进一步的建议,我会看看我能做什么,稍后再回复
猜你喜欢
  • 1970-01-01
  • 2019-05-27
  • 2016-08-05
  • 2019-05-02
  • 2020-02-13
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
  • 2022-08-20
相关资源
最近更新 更多