购物车,BMI
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 oods = [ 2 {'name':'电脑','price':1999}, 3 {'name':'鼠标','price':10}, 4 {'name':'美女','price':50}, 5 {'name':'游艇','price':20}, 6 {'name':'火箭','price':250}, 7 ] 8 shop_car={} 9 feiyong=0 10 money=input("请输入您的金额:") 11 if money.isdigit(): 12 while True: 13 for i in range(len(goods)): 14 print(i+1,goods[i]['name'],goods[i]['price']) 15 # ===================商品展示====================== 16 number=input("请输入您要购买的商品序号(N/结算,Q/退出:") 17 if number.isdigit() and 0< int(number) < len(goods): 18 # 让用户输入商品序号并判断是不是数字以及在不在正常输入范围内 19 20 index = int(number) - 1 21 # 通过用户输入的内容减一获取到goods的索引 22 23 if shop_car.get(index)==None: 24 shop_car[index]=1 25 else: 26 shop_car[index] +=1 27 # ====================让用户把商品加入到购物车中==================== 28 29 elif number.upper()=='N': 30 for i in shop_car: 31 feiyong=feiyong+shop_car[i]*goods[i]['price'] 32 if int(money) >=feiyong: 33 for el in shop_car: 34 print(f'您购买的商品是{goods[el]["name"]},单价是{goods[el]["price"]},数量是{shop_car[el]}') 35 else: 36 print("余额不足") 37 elif number=="Q": 38 print(f'您本次消费的金额是{feiyong},剩余金额是{int(money)-feiyong}') 39 else: 40 print("输入有误,请重新输入") 41 else: 42 print("请您给真钱"
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # 1.创建并输出菜单, 菜单是不可变的. 所以使用元组 2 # menus = ("1, 录入", "2, 查询", "3, 删除", "4, 修改", "5, 退出") 3 4 # 存储用户的信息 id: {'name':'名字', 'weight':体重, 'height':身高} 5 # 例如:目前有两个用户信息:1. 汪峰, 2. 章子怡 6 # 存储结构: 7 # { 8 # 1:{'name':'汪峰', 'weight':80, 'height':1.8, 'BMI':24.7}, 9 # 2:{'name':'章子怡', 'weight':50, 'height':1.65, 'BMI':18.4} 10 # } 11 # bodies = {} 12 13 # body_id = 1 # 编号从1开始 14 15 # 体质指数(BMI)= 体重(kg)÷ (身高(m) x 身高(m)) 16 # 体重的单位: KG 17 # 身高的单位: m 18 # 需求:首先。打印菜单,然后用户输入选择的菜单项 19 # 输入1:进入录入环节。用户需要录入:名字,身高,体重. 20 # 由程序计算出BMI指数. 保存到bodies字典中. 第一个用户的id是1, 第二个是2, 以此类推 21 # 录入完毕后. 提示用户是否继续录入. 如果选择是, 则继续进行录入, 直到用户输入否. 则返回到主菜单 22 # 输入2: 进入查询环节, 提示用户输入要查询的人的id. 如果不存在,给与提示, 如果存在. 则显示出该用户的全部信息(名字,身高,体重,BMI) 23 # 然后提示用户是否继续查询. 如果选择是, 继续进行查询, 直到用户输入否, 返回主菜单 24 # 输入3: 进入删除环节, 提示用户输入要删除的人的id, 如果id不存在, 给与提示, 如果存在, 则执行删除操作. 并提示删除成功. 25 # 然后提示用户是否继续删除, 如果是, 继续让用户选择要删除的id, 直到用户输入否, 返回主菜单 26 # 输入4: 进入修改环节, 首先让用户输入要修改的人的id, 根据id查找用户信息, 如果不存在, 给与提示, 如果存在, 将用户原信息进行打印, 27 # 然后提示用户输入新的名字, 身高, 体重. 由程序重新计算BMI指数. 并将新的信息保存在bodies中. 同时给用户展示新的用户信息 28 # 然后提示用户是否继续修改, 如果是, 则继续要求用户输入id信息. 直到用户输入否, 返回主菜单. 29 # 输入5: 程序退出. 30 # 输入其他任何内容. 都予以提示不合法. 让用户重新进行输入 31 menus = ("1, 录入", "2, 查询", "3, 删除", "4, 修改", "5, 退出") 32 bodies={ 33 1:{'name':'汪峰', 'weight':80, 'height':1.8, 'BMI':24.7}, 34 2:{'name':'章子怡', 'weight':50, 'height':1.65, 'BMI':18.4} 35 } 36 # bodies = {} # 人 37 38 body_id = 1 # 编号从1开始 key 39 40 l=[] # ids 41 42 43 while 1: # 主菜单 44 for i in menus: 45 print(i) 46 s=input("主菜单:请选择功能:") 47 if s=="1": 48 while 1: 49 print("1, 录入") 50 name = input("请输入名字:") 51 height = float(input("身高m:")) 52 weight = float(input("体重kg:")) 53 b = int(weight/(height**2)) # 54 bodies[body_id]={'name':name, 'weight':weight, 'height':height, 'BMI':b} 55 # print(bodies) 56 body_id+=1 57 jixu = input("是否继续录入y/n:") 58 if jixu.lower()=='y': 59 print("继续录入") 60 else:# n 61 break 62 elif s=="2": 63 while 1: 64 print("2, 查询") 65 d = int(input("请输入要查询的id:")) 66 for i in bodies: 67 l.append(i) 68 if d in l: 69 print("名字%s,身高%s,体重%s,BMI%s"%(bodies[d]["name"],bodies[d]["height"],bodies[d]["weight"],bodies[d]["BMI"])) 70 else: 71 print("没有该用户") 72 jixu = input("是否继续查询y/n:") 73 if jixu.lower() == 'y': 74 print("继续查询") 75 else: # n 76 break 77 elif s=="3": 78 print("3, 删除") 79 while 1: 80 print("3, 删除") 81 d = int(input("请输入要删除的id:")) 82 for i in bodies: 83 l.append(i) 84 if d in l: 85 print("名字%s,身高%s,体重%s,BMI%s"%(bodies[d]["name"],bodies[d]["height"],bodies[d]["weight"],bodies[d]["BMI"])) 86 del bodies[d] 87 else: 88 print("没有该用户") 89 jixu = input("是否继续删除y/n:") 90 if jixu.lower() == 'y': 91 print("继续删除") 92 else: # n 93 break 94 elif s=="4": 95 print("4, 修改") 96 while 1: 97 print("4, 修改") 98 d = int(input("请输入要修改的id:")) 99 for i in bodies: 100 l.append(i) 101 if d in l: 102 print("原信息!!!名字%s,身高%s,体重%s,BMI%s"%(bodies[d]["name"],bodies[d]["height"],bodies[d]["weight"],bodies[d]["BMI"])) 103 name = input("新名字:") 104 height = float(input("新身高m:")) 105 weight = float(input("新体重kg:")) 106 b = int(weight / (height ** 2)) # 107 bodies[body_id] = {'name': name, 'weight': weight, 'height': height, 'BMI': b} 108 print("新信息!!!名字%s,身高%s,体重%s,BMI%s" % ( 109 bodies[d]["name"], bodies[d]["height"], bodies[d]["weight"], bodies[d]["BMI"])) 110 else: 111 print("没有该用户") 112 jixu = input("是否继续修改y/n:") 113 if jixu.lower() == 'y': 114 print("继续修改") 115 else: # n 116 break 117 elif s=="5": 118 print("5, 退出") 119 break 120 else: 121 print("输入有误!")