python编程:以下为某商店的商品销售信息: sales = [ ['订单号','商品类别编号','商品名称','单价','销售数量','退货数量'], ['1058032','01','蛋糕80g',6.78,1,0], ['1058032','02','雀巢1+2咖啡原味15g*7条',10.50,10,2], ['1033673','02','雪碧清爽柠檬味汽水500ml',2.98,58,0], ['1033673','01','爱达乐全麦吐司面包180g',5.48,20,0], ['1033675','01','菠萝泡芙蛋糕100g',6.98,10,0], ['1029456','03','卫龙牛味棒20g',0.50,20,2], ['1029456','03','洽洽香瓜子200g',7.00,12,0], ['1029456','02','雪碧清爽柠檬味汽水500ml',3.00,100,0] ] 1.请编写函数实现计算每个商品的销售额,形参为销售信息列表,返回带有销售额的列表 2.主程序:调用函数计算每个商品的销售额,然后统计每种商品类别的商品数量和总销售额, 按总销售额从高到底输出每种商品类别的总销售额及其排名 输出包含商品数量最多的商品类别
时间: 2023-08-20 21:22:49 浏览: 85
python获取商品销量数据
请参考下面的代码实现:
```python
sales = [ ['订单号','商品类别编号','商品名称','单价','销售数量','退货数量'],
['1058032','01','蛋糕80g',6.78,1,0],
['1058032','02','雀巢1+2咖啡原味15g*7条',10.50,10,2],
['1033673','02','雪碧清爽柠檬味汽水500ml',2.98,58,0],
['1033673','01','爱达乐全麦吐司面包180g',5.48,20,0],
['1033675','01','菠萝泡芙蛋糕100g',6.98,10,0],
['1029456','03','卫龙牛味棒20g',0.50,20,2],
['1029456','03','洽洽香瓜子200g',7.00,12,0],
['1029456','02','雪碧清爽柠檬味汽水500ml',3.00,100,0]]
# 计算每个商品的销售额
def calculate_sales(sales_info):
sales_info[0].append('销售额')
for i in range(1, len(sales_info)):
sales = sales_info[i][3] * sales_info[i][4] - sales_info[i][5] * sales_info[i][3]
sales_info[i].append(sales)
return sales_info
# 统计每种商品类别的商品数量和总销售额
def calculate_category_sales(sales_info):
category_sales = {}
for i in range(1, len(sales_info)):
category = sales_info[i][1]
sales = sales_info[i][6]
if category in category_sales:
category_sales[category]['count'] += 1
category_sales[category]['sales'] += sales
else:
category_sales[category] = {}
category_sales[category]['count'] = 1
category_sales[category]['sales'] = sales
return category_sales
# 输出每个商品类别的总销售额及排名
def print_category_sales(category_sales):
sorted_sales = sorted(category_sales.items(), key=lambda x: x[1]['sales'], reverse=True)
print('商品类别编号\t商品数量\t总销售额\t排名')
for idx, item in enumerate(sorted_sales):
category = item[0]
count = item[1]['count']
sales = item[1]['sales']
print('%s\t\t%d\t\t%.2f\t\t%d' % (category, count, sales, idx+1))
# 输出商品数量最多的商品类别
def print_most_category(category_sales):
sorted_count = sorted(category_sales.items(), key=lambda x: x[1]['count'], reverse=True)
most_category = sorted_count[0][0]
print('商品数量最多的商品类别编号为:%s' % most_category)
if __name__ == "__main__":
# 计算每个商品的销售额
sales_info = calculate_sales(sales)
# 统计每种商品类别的商品数量和总销售额
category_sales = calculate_category_sales(sales_info)
# 输出每个商品类别的总销售额及排名
print_category_sales(category_sales)
# 输出商品数量最多的商品类别
print_most_category(category_sales)
```
在这个程序中,我们首先定义了一个 calculate_sales 函数,用于计算每个商品的销售额。然后定义了一个 calculate_category_sales 函数,用于统计每种商品类别的商品数量和总销售额。最后定义了一个 print_category_sales 函数,用于按总销售额从高到低输出每种商品类别的总销售额及其排名,以及一个 print_most_category 函数,用于输出商品数量最多的商品类别。
在主程序中,我们先调用 calculate_sales 函数计算每个商品的销售额,然后调用 calculate_category_sales 函数统计每种商品类别的商品数量和总销售额,最后分别调用 print_category_sales 和 print_most_category 函数输出结果。
阅读全文