python3之模拟商场购物
Posted exception999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3之模拟商场购物相关的知识,希望对你有一定的参考价值。
模拟商场购物
输入部分需要进行输入有效性校验,原谅我技术还不到位
1 #coding:utf-8 2 3 #商品信息 4 shop = { 5 1:{"品名":"苹果","单价":6,"单位":"Kg"}, 6 2:{"品名":"梨","单价":3,"单位":"Kg"}, 7 3:{"品名":"可乐","单价":2.5,"单位":"瓶"} 8 } 9 10 #购物车{商品编号:商品数量} 11 shoppingCart = {} 12 13 money = 50 14 15 #打印商店商品列表 16 def printShop(): 17 for key1 in shop.keys(): 18 print("商品编号:",key1," 品名:",shop.get(key1).get("品名")," 单价:",shop.get(key1).get("单价"),"元/",shop.get(key1).get("单位")) 19 20 #打印购物车商品列表 21 def printShoppingCart(): 22 for key1 in shoppingCart.keys(): 23 print("商品编号:",key1," 品名:",shop.get(key1).get("品名")," 数量:",shoppingCart.get(key1),shop.get(key1).get("单位")," 单价:",shop.get(key1).get("单价"),"元/", 24 shop.get(key1).get("单位")) 25 26 #购买操作 27 def buy(id,num): 28 #错误校验 29 if not id in shop.keys(): 30 print("商品编号有误") 31 return 32 num1 = 0 33 #购物车已有商品则获取原有商品数量 34 if shoppingCart.get(id) != None: 35 num1 = shoppingCart.get(id) 36 re = num + num1 37 shoppingCart.update({id:re}) 38 39 #删除商品 40 def dele(id,num): 41 #错误校验 42 if id not in shoppingCart.keys(): 43 print("要删除的商品不存在") 44 return 45 if num>shoppingCart.get(id) or num<0: 46 print("数量有误") 47 return 48 if num==0: 49 return 50 re = shoppingCart.get(id) - num 51 if re == 0: 52 shoppingCart.pop(id) 53 else: 54 shoppingCart.update({id:re}) 55 print("删除成功") 56 57 #统计购物车当前总金额 58 def totalMoney(): 59 totalMoney1 = 0 60 for id,num in shoppingCart.items(): 61 totalMoney1 += (num*shop.get(id).get("单价")) 62 return totalMoney1 63 64 #结算操作 65 def pay(money): 66 #购物车中无商品 67 if totalMoney() == 0: 68 print("请先选购商品再进行结算") 69 return 70 71 #商品总价高于卡中金额 72 if totalMoney() > money: 73 print("卡余额不足,结算失败") 74 return 75 76 #结算 77 money -= totalMoney() 78 print("您本次共消费",totalMoney(),"元,卡上余额:",money) 79 80 #选购商品 81 def xgsp(): 82 # print("选购商品") 83 while True: 84 id = -1 85 num = 0 86 printShop() 87 ss = input("请输入要选购商品的商品编号,返回请按q:") 88 if ss == "q": 89 return 90 elif not ss.isdigit() or (int)(ss) not in shop.keys(): 91 print("输入的编号有误") 92 continue 93 else: 94 id = (int)(ss) 95 num = (float)(input("请输入购买数量:")) 96 buy(id,num) 97 print("购买成功") 98 continue 99 100 #查看购物车 101 def ckgwc(): 102 # print("查看购物车") 103 if totalMoney()==0: 104 print("当前购物无商品") 105 return 106 while True: 107 print() 108 printShoppingCart() 109 print("1、结账") 110 print("2、删除商品") 111 cho = input("请选择操作,输入q返回:") 112 if cho == "q": 113 return 114 elif cho == "1": 115 pay(money) 116 return 117 elif cho == "2": 118 id = (int)(input("请输入商品编号:")) 119 num = (int)(input("请输入删除数量:")) 120 dele(id,num) 121 else: 122 print("输入有误") 123 print() 124 125 def jz(): 126 pay(money) 127 # print("结账") 128 return 129 130 131 #主程序 132 while True: 133 print() 134 print("1、选购商品") 135 print("2、查看购物车") 136 print("3、结账") 137 cho = input("请选择操作,退出请输入q:") 138 if cho == "q": 139 print("欢迎下次光临") 140 break 141 elif cho == "1": 142 xgsp() 143 elif cho == "2": 144 ckgwc() 145 elif cho == "3": 146 jz() 147 else: 148 print("输入有误") 149 print()
以上是关于python3之模拟商场购物的主要内容,如果未能解决你的问题,请参考以下文章
某商场为了促销,采用购物打折的优惠办法:每位顾客一次购物:①在1000元以上者按九五折优惠;②在2000元
03-python3.5-模拟购物车流程--更新追加细节注释功能
华为机试真题 C++ 实现模拟商场优惠打折2022.11 Q4 新题