[要求]
1,生成 蔬菜价格明细表
2,把价格变动的菜价,更新到总表中
[思路]
1,利用 集合的原理, key不变, 只更新value
2,按列生成数据
3,整理数据成集合的形式 ,包括原始价格和新价格
4,遍历表格中名称和价格, 选取变更的价格 更新到新表中
–coding:utf-8–
材料: 原始菜名 新价格
名称 = (
“白菜、菠菜、油菜、卷心菜、苋菜、韭菜、蒿菜、香菜、芥菜、芥兰、茴香、蒜苗、莴笋、空心菜、豌豆尖、生菜、白花菜、青花菜、油麦菜、甘蓝、小葱、萝卜、马铃薯、藕、甘薯、山药、芋头、茭白、苤蓝、慈姑、洋葱、生姜、大蒜、蒜薹、韭菜花、大葱、韭黄、冬瓜、南瓜、西葫芦、丝瓜、黄瓜、茄子、西红柿、苦瓜、辣椒、玉米、小瓜、毛豆、豌豆、蚕豆、扁豆、豇工、四季豆、香菇、平菇、金针菇、木耳、银耳、杏鲍菇、口蘑”
)
菜价_up=“菠菜:100.00、油菜:100.50、苋菜:100.99、香菜:0.80”
1,调入模块
import random
from openpyxl import Workbook
2, 新建表格
wb=Workbook()
ws=wb.active
3, 填充列标题
ws.append([“序号”, “菜名”, “单价”, “数量”, “合计”]) # 用列表的形式填充
4, 填充表格 数据 以列填充
名称_list=名称.split("、") #字符串变列表
for 序号,名称 in enumerate(名称_list):
# print(序号,名称)
ws.cell(row=序号+2,column=1).value =序号+1
ws.cell(row=序号+2,column=2).value =名称
ws.cell(row=序号+2,column=3).value =round(random.uniform(3,15),2) #单价
ws.cell(row=序号+2,column=4).value =random.randint(30,50) #数量
价格=ws.cell(row=序号+2,column=3).value*ws.cell(row=序号+2,column=4).value
ws.cell(row=序号+2,column=5).value = 价格
=表格数据制作完成============
5, 清洗 把菜价更改 调整成 集合形式
菜价_up_list=菜价_up.split("、")
菜价_up_data={}
for i in 菜价_up_list:
菜价_up_data[i.split("😊[0]]=i.split("😊[1]
print(菜价_up_data)
6, 把原始的名称和价格找出 并更新
菜价_data={}
for row in range(1,len(名称_list)):
蔬菜名称=ws.cell(row=row,column=2).value
价格=ws.cell(row=row,column=3).value
菜价_data.setdefault(蔬菜名称,价格) # 形成价格 集合
if 蔬菜名称 in 菜价_up_data :
ws.cell(row=row,column=3).value=菜价_up_data[蔬菜名称]
wb.save(“004 蔬菜价格表变动.xlsx”)
代码奉上
# --*coding:utf-8*--
"""
[要求] 1,生成 蔬菜价格明细表
2,把价格变动的菜价,更新到总表中
"""