我正在研究一个简单的产品库存,该产品本质上允许用户添加产品,显示产品并推断库存价值。我被困在推断存货价值的部分。我希望代码在这里执行的操作是将每个添加的乘积乘以乘积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)
答案 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