python开发购物车
Posted Artisan正传
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python开发购物车相关的知识,希望对你有一定的参考价值。
1 业务需求
商品中心
显示库存的商品
商品能够加入到购物车
个人中心
购物车
修改购物车的商品
下单
完成的订单
订单详情
账户余额
2 代码实现
1 # 定义全局变量信息 2 # 商品编号信息 3 goods_num = {\'G1\': \'皮鞋\', \'G2\': \'皮带\', \'G3\': \'帽子\', \'G4\': \'笔记本\'} 4 # 商品单价 5 goods_price = {\'皮鞋\': 165, \'皮带\': 99, \'帽子\': 49, \'笔记本\': 3999} 6 # 购物车 7 shopping_car = {} 8 # 完成的订单 9 already_paid = {} 10 # 个人编号的功能 11 IdCenter_Num = {\'M1\':"shopping_car", \'M2\':"already_paid"} 12 # 个人中心的功能 13 IdCenter_dict = {"shopping_car": shopping_car, \'already_paid\': already_paid} 14 # 账户余额 15 AccountBalance = [400, ] 16 17 18 # 商品选择页面 19 def GoodsFunction(): 20 # 打印商品编号,商品以及对应价格,供选择 21 print(\'序号\\t\\t\\t商品\\t\\t\\t价格\') 22 for i in goods_num: 23 print(\'%s\\t\\t\\t%s\\t\\t\\t%s\' % (i, goods_num.get(i), goods_price.get(goods_num.get(i)))) 24 result = input("请输入序号:").strip() 25 # 判断传入参数 26 if result == \'\': 27 print("Error:不能为空") 28 elif result == \'0\' or result == "1": 29 return result 30 elif result in goods_num: 31 goodname = goods_num.get(result) 32 # 参数为商品编号,传入到AddGood()函数 33 AddGood(goodname) 34 else: 35 print("Error:指令错误,请重新输入") 36 return \'0\' 37 38 39 # 加入购物车 40 def AddGood(goodname): 41 N_1 = int(input(\'请输入%s的数量:\' % goodname)) 42 if N_1 > 0: 43 # 判断商品元素是否存在,存在则修改数量,不存在则追加 44 if goodname in shopping_car: 45 shopping_car[goodname] = N_1 46 print(shopping_car) 47 else: 48 shopping_car.update({goodname:N_1}) 49 print(shopping_car) 50 else: 51 print(\'Error:商品数量有误\') 52 53 54 # 个人中心 55 def GoIdCenter(): 56 print("欢迎来到个人中心,\\n序号\\t选项") 57 for i in IdCenter_Num: 58 print(\'%s\\t\\t%s\' % (i, IdCenter_Num.get(i))) 59 print("\\n账户余额:%s\\n0\\t商品页\\n1\\t个人中心(购物车、订单、余额)" % AccountBalance[0]) 60 result = input("请输入序号:").strip() 61 if result == \'\': 62 print("Error:不能为空,请重新输入!") 63 elif result == \'0\' or result == \'1\': 64 return result 65 elif result in IdCenter_Num: 66 if result == \'M1\': 67 # 购物车操作函数,flag作为操作标识,如果返回不为空则将返回值在此返回并跳出循环 68 flag = \'\' 69 while True: 70 flag = ShopCartFun() 71 if flag != \'\': 72 return flag 73 continue 74 elif result == \'M2\': 75 # 订单查看函数 76 GoodOrder() 77 return 1 78 else: 79 print("Error:指令错误,请重新输入!") 80 return \'1\' 81 82 83 # 购物车操作 84 def ShopCartFun(): 85 # 判断购物车是否为空 86 if shopping_car: 87 print(\'购物车\\n商品名\\t\\t数量\\t\\t单价\\t\\t总价\') 88 for i in shopping_car: 89 # 打印购物车商品详单 90 print(\'%s\\t%s\\t\\t%s\\t\\t%s\' % (i, shopping_car.get(i), goods_price.get(i), shopping_car.get(i) * goods_price.get(i))) 91 else: 92 print("你的购物车空旷如也") 93 print(\'\\n0\\t商品页\\n1\\t个人中心(购物车、订单、余额)\\n2\\t清空购物车\\n3\\t结账\\n修改商品数量请输入商品名。\') 94 result = input("请输入:").strip() 95 if result == \'\': 96 print("不能为空,请重新输入") 97 elif result == \'0\' or result == \'1\' or result == \'3\': 98 # 3为结账选项,返回到主函数,调用结账函数 99 return result 100 elif result in shopping_car: 101 # 修改商品数量,再次调用AddGood()函数 102 AddGood(result) 103 else: 104 print("指令错误,请重新输入") 105 return \'\' 106 107 108 # 结账函数 109 def CheckOut(): 110 # 购物车金额合计 111 Total = 0 112 for i in shopping_car: 113 Total += shopping_car.get(i) * goods_price.get(i) 114 print(Total) 115 # 判断是否满足结账条件 116 if Total > AccountBalance[0]: 117 print("余额不足") 118 else: 119 import time 120 # 生成时间戳,作为订单号 121 Date = int(time.time()) 122 # 生成订单呢 123 already_paid.update({Date:shopping_car}) 124 # 扣款 125 AccountBalance[0] = AccountBalance[0] - Total 126 # 购物车清空 127 shopping_car.clear() 128 return \'1\' 129 130 131 # 查看订单详情 132 def GoodOrder(): 133 if already_paid: 134 print(\'完成订单\\n订单号\') 135 for i in already_paid: 136 print(i) 137 print(\'\\n0\\t商品页\\n1\\t个人中心(购物车、订单、余额)\') 138 N_2 = int(input(\'\\n输入要查看的订单号:\').strip()) 139 if N_2 == \'\': 140 print(\'不能为空,请重新输入\') 141 elif N_2 == \'0\' or N_2 == \'1\': 142 return N_2 143 elif N_2 in already_paid: 144 print(\'订单%s详情商品名\\t数量\\t总价\'%N_2) 145 for i in already_paid.get(N_2): 146 print(\'%s\\t%s\\t%s\' % (i, already_paid.get(N_2).get(i), goods_price.get(i) * already_paid.get(N_2).get(i))) 147 else: 148 print(\'输入有误\') 149 150 151 if __name__ == "__main__": 152 N = GoodsFunction() 153 while True: 154 if N == \'0\': 155 N = GoodsFunction() 156 elif N == \'1\': 157 N = GoIdCenter() 158 elif N == \'2\': 159 shopping_car = {} 160 N = GoodsFunction() 161 elif N == \'3\': 162 N = CheckOut()
3 个人理解
任何事物都可分为两个维度,属性和方法,属性可理解数据结构,方法就是对数据结构操作的动作。
确定数据的结构,数据结构是用来存存储数据的地方,它本身也是对象。
一个函数的返回结果可能是另外一个函数形式参数。
无论是面向对象还是面向过程的编程,都是需要立足于现实的业务逻辑。
对于程序,我们需要多写多练习,当你回头看的时候,你会发现原来困扰你的问题会很简单。
4 思路来源
http://www.cnblogs.com/ikmi/p/6195065.html
以上是关于python开发购物车的主要内容,如果未能解决你的问题,请参考以下文章
Python 自动化 - 浏览器chrome打开F12开发者工具自动Paused in debugger调试导致无法查看网站资源问题原因及解决方法,javascript反调试问题处理实例演示(代码片段