购物车小程序:
待改BUG,待优化。
1 # __author:"Cheng" 2 # date:2018/2/13 3 4 product_list = [ # 因为商品和价格这里不准备改,所以用元组 。 5 6 (‘巧克力‘, 128), 7 (‘吹风机‘, 218), 8 (‘自行车‘, 688), 9 (‘扫地机器人‘, 1280), 10 (‘笔记本电脑‘, 3888), # 元组最后面都要加逗号。 11 12 ] 13 # 可以给两个变量一起赋值,例如a,b = [2,3]。分析:a和b变量分别赋值2和3 14 saving = input(‘哟,来啦,客官!你带了多少钱:‘) 15 shop_car = [] # 定义一个空列表,为下面加入该购物车作准备。 16 if saving.isdigit(): # 判断saving是否是数字。 17 saving = int(saving) # 是的话把saving转化为整型。 18 while True: # 死循环,不断打印商品列表让用户选择。 19 20 for goods_num, goods in enumerate(product_list, 1): # for后面跟的goods_num和goods 可以分别把列表中的两个元素分别赋值 。 21 print(goods_num, ‘--------‘, goods) # enumerate的作用只有一个,那就是加序号。编号并不等于索引,两者没关联。 22 usr_choice = input(‘请选择您要购买的商品序号【Q退出】:‘) # 将用户选择的序号赋值给usr_choice变量。 23 if usr_choice.isdigit(): # 判断用户是否输入数字 24 usr_choice = int(usr_choice) # 把字符串改成数字 25 if usr_choice > 0 and usr_choice <= len(product_list): # 判断用户选择的序号是否超过商品序号或者是负数。 26 c_item = product_list[usr_choice - 1] # 这里c_item表示用户选择的商品,含品名与价格。那么为什么后面的列表索引减1,因为程序是从0开始,用户看到的是从1开始的编号,因此要减1才符合程序所识别的正确位置(索引) 27 if c_item[1] < saving: # c_item[1]代表该商品价格,1代表所在列表的第2个元素,而此处第2个元素为该商品价格。 28 saving -= c_item[1] 29 shop_car.append(c_item) # 将c_item 追加至购物车。这里c_item表示用户选择的商品,含品名与价格。 30 else: 31 print(‘余额不足!当前余额:%s元‘%saving) 32 33 else: 34 print(‘请输入商品范围的序号!‘) # 如果选择的序号不在所提供范围,弹出提示。 35 36 elif usr_choice == ‘q‘: # 如果用户输入q,那么程序结束运行,打出欢迎下次光临。 37 print(‘---------您已购买如下商品---------‘) 38 for i in shop_car: 39 print(i) 40 print(‘您还剩%s元!‘%saving) 41 break 42 else: 43 print(‘序号请输入数字!‘) 44 45 else: 46 input(‘钱请输入数字,OK?‘)