Python产品库存

时间:2019-04-04 19:01:11

标签: python python-3.x

我正在研究一个简单的产品库存,该产品本质上允许用户添加产品,显示产品并推断库存价值。我被困在推断存货价值的部分。我希望代码在这里执行的操作是将每个添加的乘积乘以乘积price * product quantity并返回总和。运行代码时,出现错误TypeError: 'int' object is not iterable。我是Python新手,不胜感激!

这是代码的一部分:

class Product:

    def __init__(self, idnum, price, quantity):
        self.idnum = idnum
        self.price = price
        self.quantity = quantity        

class Inventory:

    def __init__(self):
        self.productlist = []        

    def add_product(self):
        idnum = int(input('Enter id: '))
        price = int(input('Enter price: '))
        quantity = int(input('Enter quantity: '))
        self.productlist.append(Product(idnum, price, quantity))
        return self.productlist

    def display(self):  
        for product in self.productlist:
            print(product.idnum, product.price, product.quantity)

    def inventory_value(self):
        for product in self.productlist:
            return sum(product.price*product.quantity)

1 个答案:

答案 0 :(得分:0)

我认为您打算像这样对所有乘积(乘积)求和:

def inventory_value(self):
    running_sum = 0
    for product in self.productlist:
        running_sum += product.price * product.quantity

    return running_sum

或者简单地:

def inventory_value(self):
    return sum(product.price * product.quantity for product in self.productlist)

请注意,此`sums是整个集合的 ,而不是单个整数,例如您的情况:

>>> [x * (x + 1) for x in range(5)]
[0, 2, 6, 12, 20]
>>> sum(x * (x + 1) for x in range(5))
40