清晨,阳光洒在村庄的石板路上,小小勇者刚打开木屋的门,就看到药剂师朋友在门口等候。朋友递来一张纸条,上面密密麻麻写着一长串药材名:“火焰花、夜影叶、蓝露果、风铃草……”他轻声拜托说:“能帮我跑一趟集市,把这些材料带回来吗?我得留在屋里熬制剩下的药水。”勇者点点头,立刻背起小袋子出发。他先跑到集市中最热闹的草药摊,找到了一包红得发亮的火焰花;接着穿过人群,来到一个半掩的木门前,从里面那位带着神秘气息的老者那里,换来夜影叶。蓝露果可不好找,他跑了好几家摊位才发现有个旅商带了一筐,换了几枚铜币才买下。而最后的风铃草,他翻遍了集市都没找到,直到路边听见风声中传来细碎的铃音,他顺着声音找到角落的一位老奶奶,对方微笑着递出一束浅紫色的小草。傍晚时分,勇者气喘吁吁地赶回屋前,把一整袋药材交到朋友手中。朋友满脸欣喜,赶忙将草药分门别类地摆上药架,边忙边说:“今晚就能炼出新的生命药水了。”勇者看着火光中跳动的瓶瓶罐罐,忽然觉得,帮助他人也是一种真正的成长。
每日一问:了解到药剂师们每次购买药材时都要四处奔波,你找到了商机,在村庄里开了一家应有尽有的药材铺,由于生意火爆,部分药材已售罄:
[['火焰花','库存充足'],['夜影叶','库存充足'],['蓝露果','已售罄'],['风铃草','库存充足'],['石骨藤','库存充足'],['雪心花','已售罄'],['赤羽根','库存充足'],['幽蓝苔','库存充足'],['星砂果','库存充足'],['龙须草','已售罄']]
就在此时,勇者前来药材铺帮药剂师朋友购买药材,他向你展示了手中的药材清单:
['龙须草','幽蓝苔','蓝露果','夜影叶','赤羽根','牛油果','石骨藤','太阳木']
你该如何帮助勇者根据药材清单帮他拿好药材并告诉他清单上哪些药材现在已售罄呢?
思路:
1.设计一个嵌套列表表示药材铺药材库存的情况,设计一个列表表示勇者手中的药材清单。
2.设计一个计数器来确认药材的存在性。
3.使用for循环遍历药材清单中的元素A,在嵌套一个for循环遍历药材铺的元素B,若元素B中不存在元素A,打印本药材铺没有该药材;若存在且库存充足,打印已备好该药材;若存在但已售罄,则打印该药材已售罄,每执行完一次外圈循环将计数器重置一次。
goods_list = [['火焰花','库存充足'],['夜影叶','库存充足'],['蓝露果','已售罄'], ['风铃草','库存充足'],['石骨藤','库存充足'],['雪心花','已售罄'], ['赤羽根','库存充足'],['幽蓝苔','库存充足'],['星砂果','库存充足'], ['龙须草','已售罄']] shopping_list = ['龙须草','幽蓝苔','蓝露果','夜影叶','赤羽根','牛油果','石骨藤','太阳木'] goods_supply_index = 2 - 1 #库存显示在列表中的下标位置 is_exist = 0 #初始设为药材不存在 for shopping in shopping_list: #遍历勇者手上的药材清单 for goods in goods_list: #遍历药材铺的药材清单 if shopping in goods: #确认药材是否存在 is_exist = 1 #药材存在且售罄状态 if goods[goods_supply_index] == '库存充足': is_exist = 2 #药材存在且有库存 break #成功找到药材就可以接着找下一个药材 if is_exist == 2: print(f"{shopping}已备好!!!") elif is_exist == 1: print(f"{shopping}已售罄!!!") else: print(f"本药材铺没有{shopping}") is_exist = 0 #重新设置下一个药材的存在性为不存在
对代码进行运行测试: