python3编写脚本之--------购物车
我这里的购物车的大概内容是:
1.首先要知道商品的有什么东西可卖,需要多少钱。
2.买家准备花多少钱去购物商品,购买的商品先放在购物车里。
3.最后买家还可以是否确定购买购物车的东西,还剩多少钱。
编写的脚本如下:
1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 #能购买的商品的东西 5 goods = [ 6 ["一本书", 40], ["牙膏", 3], ["牙刷", 5], ["自行车", 200], ["手表", 100], 7 ["面膜", 10], ["哇哈哈", 5], ["卫龙", 2], ["果冻", 23], ["水饺", 12], ["姨妈巾", 5], 8 ] 9 10 #输入你准备用多少钱去购买商品,并判断输入的是否是数字。 11 flag = True 12 while flag: 13 salary = input("\033[1;34;40m请输入准备花多少钱去购物: ")#\033[显示方式;前景色;背景色m + 结尾部分:\033[0m 14 if salary.isdigit(): 15 salary = int(salary) 16 cash = salary 17 break 18 else: 19 print("输入的金额方式不对,请正确输入的数字:") 20 21 #先建一个购物车空列表 22 shopping_cart = [] 23 24 #下面是想把购买的商品放入购物车中。 25 while flag: 26 for i,v in enumerate(goods, 1):#enumerate函数打印时,内容前面有编号,后面的参数1的意思是从1开始编号。 27 print("\033[0m \033[0;32;40m",i,"\t",v,"\033[0m") 28 select_num = input("\033[1;34;40m请选择您需要购买的商品(输入编号即可,输入'q'即可退出): ") 29 if select_num.isdigit(): 30 select_num = int(select_num) 31 if select_num > 0 and select_num <= len(goods): 32 if salary >= goods[select_num-1][1]: 33 shopping_cart.append(goods[select_num - 1]) 34 salary -= goods[select_num-1][1] 35 else: 36 print("\033[5;35;47m余额不足。。。剩余:%f\033[0m" % salary) 37 38 else: 39 print("\033[5;35;47m没有你想要的商品编号,请重新输入编号,谢谢!\033[0m") 40 elif select_num == 'q': 41 break 42 else: 43 print("\033[5;35;47m您输入的内容不正确,请重新输入编号!\033[0m") 44 45 #打印购物车里的东西,并判断确定是否购买 46 print("\033[0m \033[1;31;40m----------------购物车的清单-------------------\033[0m") 47 shopping_cart_norepeat = [] 48 for trade in shopping_cart: 49 if trade not in shopping_cart_norepeat: 50 shopping_cart_norepeat.append(trade) 51 52 for commodity in shopping_cart_norepeat: 53 n = shopping_cart.count(commodity) 54 print("\033[1;32;40m",commodity[0],"-----",n,"件-----",commodity[1]*n,"元\033[0m") 55 56 #确定是否购买商品。 57 sure = input("\033[4;31;40m你确定购买吗?(y/n) ") 58 if sure == 'y': 59 print("\033[0m \033[5;32;40m你已经购买了以上的商品。剩余金额为:%f元\033[0m" % salary) 60 else: 61 print("\033[0m \033[5;32;40m你没购买的以上商品,剩余金额不变: %f元\033[0m" % cash)
下面结果是一个例子:
请输入准备花多少钱去购物: 200 1 ['一本书', 40] 2 ['牙膏', 3] 3 ['牙刷', 5] 4 ['自行车', 200] 5 ['手表', 100] 6 ['面膜', 10] 7 ['哇哈哈', 5] 8 ['卫龙', 2] 9 ['果冻', 23] 10 ['水饺', 12] 11 ['姨妈巾', 5] 请选择您需要购买的商品(输入编号即可,输入'q'即可退出): 1 1 ['一本书', 40] 2 ['牙膏', 3] 3 ['牙刷', 5] 4 ['自行车', 200] 5 ['手表', 100] 6 ['面膜', 10] 7 ['哇哈哈', 5] 8 ['卫龙', 2] 9 ['果冻', 23] 10 ['水饺', 12] 11 ['姨妈巾', 5] 请选择您需要购买的商品(输入编号即可,输入'q'即可退出): 1 1 ['一本书', 40] 2 ['牙膏', 3] 3 ['牙刷', 5] 4 ['自行车', 200] 5 ['手表', 100] 6 ['面膜', 10] 7 ['哇哈哈', 5] 8 ['卫龙', 2] 9 ['果冻', 23] 10 ['水饺', 12] 11 ['姨妈巾', 5] 请选择您需要购买的商品(输入编号即可,输入'q'即可退出): 4 余额不足。。。剩余:120.000000 1 ['一本书', 40] 2 ['牙膏', 3] 3 ['牙刷', 5] 4 ['自行车', 200] 5 ['手表', 100] 6 ['面膜', 10] 7 ['哇哈哈', 5] 8 ['卫龙', 2] 9 ['果冻', 23] 10 ['水饺', 12] 11 ['姨妈巾', 5] 请选择您需要购买的商品(输入编号即可,输入'q'即可退出): 6 1 ['一本书', 40] 2 ['牙膏', 3] 3 ['牙刷', 5] 4 ['自行车', 200] 5 ['手表', 100] 6 ['面膜', 10] 7 ['哇哈哈', 5] 8 ['卫龙', 2] 9 ['果冻', 23] 10 ['水饺', 12] 11 ['姨妈巾', 5] 请选择您需要购买的商品(输入编号即可,输入'q'即可退出): 7 1 ['一本书', 40] 2 ['牙膏', 3] 3 ['牙刷', 5] 4 ['自行车', 200] 5 ['手表', 100] 6 ['面膜', 10] 7 ['哇哈哈', 5] 8 ['卫龙', 2] 9 ['果冻', 23] 10 ['水饺', 12] 11 ['姨妈巾', 5] 请选择您需要购买的商品(输入编号即可,输入'q'即可退出): q ----------------购物车的清单------------------- 一本书 ----- 2 件----- 80 元 面膜 ----- 1 件----- 10 元 哇哈哈 ----- 1 件----- 5 元 你确定购买吗?(y/n) y 你已经购买了以上的商品。剩余金额为:105.000000元