我有两个函数(price()
和sold()
),可以创建一个随机的数字列表。第三个函数(itemSale()
)假设将price()
和sold()
中的列表相乘,根据答案创建新列表,然后显示它们。这是我的代码:
def main():
itemSale()
def price():
priceList = [1,2,3,4,5,6,7,8,9,10]
for i in range (10):
priceList[i] = random.uniform(1.0,1000.0)
print("${:7.2f}".format(priceList[i]))
return priceList[i]
def sold():
itemsSold = [1,2,3,4,5,6,7,8,9,10]
for i in range (10):
itemsSold[i] = random.randint(0,200)
print ('%i' %(itemsSold[i]))
return itemsSold[i]
def itemSale():
itemSale = [1,2,3,4,5,6,7,8,9,10]
totSale = sold()*price()
print("${:7.2f}".format(totSale))
它将在前两个函数中显示随机生成的数字,但只会将这些列表中的最后一个数字相乘,我无法弄清楚如何让它正常工作。
#from sold()
146
119
52
117
200
30
74
23
151
161
#from price()
$ 308.23
$ 116.05
$ 531.93
$ 730.77
$ 917.83
$ 949.44
$ 750.43
$ 427.39
$ 125.91
$ 14.06
#from itemSale()
$2262.96
答案 0 :(得分:2)
每个函数只返回最后一项,为什么不返回整个列表?例如改变
return priceList[i]
到
return priceList
然后,您需要将列表中的每个成对项目相乘
totSale = sold()*price()
变为
totSale = sum([x*y for x,y in zip(sold(),price())])