各自选定数据类型创建和保存各种咖啡的名称、所用原材料,
以及每种咖啡的原材料配比,以上数据保存在程序中无须运行时输入,
运行时界面显示如下8种咖啡的序号和名称。
1:白咖啡 2:美式
3:拿铁 4:布列夫
5:卡布奇诺 6:康巴纳
7:摩卡 8:玛奇朵
提示用户输入序号或者中文名称后,随即屏幕打印出对应的材料配比信息。
存储的配比数据按照图例中的1、0、0.5、1.5来保存,而最终打印的配比按照百分比显示,且未用到的材料不显示。
#最外部使用列表,中层使用元组,内层使用字典来储存每种材料与其对应的量
coffee=[("白咖啡",{"浓缩咖啡":1,"热牛奶":1.5}),("美式",{"浓缩咖啡":1,"水":2}),("拿铁",{"浓缩咖啡":1,"热牛奶":1.5,"奶泡":0.5}),("布列夫",{"浓缩咖啡":1,"热牛奶":1.5,"奶泡":0.75,"鲜奶油":0.5}),("卡布奇诺",{"热牛奶":0.5,"浓缩牛奶":1,"奶泡":1.5}),("康宝蓝",{"浓缩咖啡":1,"鲜奶油":0.5}),("摩卡",{"浓缩咖啡":1,"热牛奶":1,"巧克力酱":0.5,"鲜奶油":0.5}),("玛奇朵",{"浓缩咖啡":1,"奶泡":0.5})]
i=0 while 1: if i>=8: break print(str(i+1)+":"+coffee[i][0]+"\t"+str(i+2)+":"+coffee[i+1][0]+"\t") i+=2 co={}#来储存配料 #python默认输入的类型为字符串 num=input("请输入对应咖啡的序号:") co=coffee[int(num)-1][1] zz=0#配料总量 print(coffee[int(num)-1][0]+"中含量占比为:") #遍历字典的key与value for value in co.values(): zz+=value for key,value in co.items(): #这里有个手动的四舍五入操作,保留整数 print(f'{key} 所占的百分比约为 {int((int((value/zz)*1000)+5)/10)}%') 如果你对切片还不太理解那你可以看这里看看我之前写的切片: python切片操作(深度解析).
大家对于不同的题目要选择适合这个题自己的数据储存方式,这样可以更好的帮助你解决这个题目
老师布置的作业题,有很多地方都可以进行优化,欢迎大佬前来指点!!!