购物车小程序

购物车小程序:

 1 # __author:"Cheng"
 2 # date:2018/2/14
 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('存多少钱到购物卡:')  # saving就是你刚刚输入的钱,存了多少钱在你的账户
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]     # 如果商品价格不超过saving(购物卡),那么就用购物卡金额减去商品价格。
29                     shop_car.append(c_item)     # 将c_item 追加至购物车。这里c_item表示用户选择的商品,含品名与价格。
30                     print('---------当前购物车---------')
31                     for i in shop_car:
32                         print(i)
33                     print('余额:%s元'%saving)
34                 else:
35                     print('余额不足!当前余额:%s元'%saving)
36                     print('---------您已购买如下商品---------')
37                     for i in shop_car:
38                         print(i)
39                     print('您还剩%s元!' % saving)
40                     while True:
41                         add_money = input('是否充值,“是” 请输入充值金额,“否” 请按Q退出(回车确认):')
42                         if add_money.isdigit():
43                             add_money = int(add_money)
44                             new_saving = 0
45                             new_saving = saving + add_money
46                             saving = new_saving
47                             print('充值成功,当前余额%s元!'%saving)
48                             break
49                         else:
50                             print('请按要求输入!')
51 
52             else:
53                 print('请输入商品范围的序号!')    # 如果选择的序号不在所提供范围,弹出提示。
54 
55         elif usr_choice == 'q':     # 如果用户输入q,那么程序结束运行,打出欢迎下次光临。
56             print('---------您已购买如下商品---------')
57             for i in shop_car:
58                 print(i)
59             print('您还剩%s元!'%saving)
60             print('---------欢迎下次光临---------')
61             break
62         else:
63             print('序号请输入数字!')
64 
65 else:
66     input('钱请输入数字,OK?')
原文地址:https://www.cnblogs.com/cbl321/p/8447706.html