一个简单的购物车编程思想和源码

1、首先想到的是编号、物品名称、价格;多个商品构成一个列表;

2、通过列表的取值与设定的余额变量进行比较;

3、涉及到循环,比如余额1000,选择2件400的物品,再选择一件大于200的物品时,不允许购买;

#_author_='Lucky';
#date: 2018/9/28

product_list=[('bike',3200),
('book',100),
('iphone',6200),
('cars',20000),
('photo',75),
('airs',7400)]#先把产品属性以分组的形式放到这个列表中
shopCar = []#这是一个空列表,后面在选择商品时用于添加进来,然后将它打印
saleMoney = input('输入您的银行卡余额:')#根据银行卡的金额来判断可以买那些商品,其实可以直接赋值,然后那变量来判断
if saleMoney.isdigit():#''变量名.isdigit()'',是判断输入的字符串是不是数字型,这是个函数 比如输入的是‘123’,那if的结果为True,如果是字母不是数字,那就是false
saleMoney = int(saleMoney)#将输入的值进行转换,转成整型好与商品价格进行比较
while True:#涉及到用户购物会多次选择产品,后也许会有其它操作,所以用此,后面有break退出的
for i,v in enumerate(product_list,1):#根据参数(1)来指定列表头,并将列表头分别给到前面2个变量 i v ;
print(i,v)#展示列表
choice = input('请输入购买的产品编号:')#提示用户选择商品并输入编号
if choice.isdigit():#判断输入的编号是不是数字型的字符串

choice = int(choice)#转换整型
if choice>=1 and choice < len(product_list):#输入的编号是否小于列表的长度
product_list_No=product_list[choice-1]#展示的内容在列表中的数字应该对应减去1,因为列表中是从0开始

if product_list_No[1]<saleMoney:#输入的编号在列表范围后再判断金额来决定是否把输入的产品添加进shopcars
saleMoney -= product_list_No[1]#如果在列表范围,银行卡余额应当减去编号的金额,编号对应金额就是列表取值的用法,金额是列表的1位置
shopCar.append(product_list_No)#放进购物车
else:
print('余额不足,剩余金额为:',saleMoney)#输入编号的金额大于余额,打印通知不允许购买
print(product_list_No)#打印列表,用户可以选择
else:
print('编码不存在')#输入的编号不存在,可以重新选择
elif choice =='q':#输入的编号不是数字型的,而是q,那就打印购物车里的物品和退出while循环
print('................已购买如下商品..............')
for i in shopCar:#购物车存在多个产品, for i in 的方式进行分行打印
print(i)
print('剩余金额为%s元钱:'%saleMoney)
print('..................购物结束.................')
break
else:
print('无此产品编号')
posted @ 2018-09-28 16:48  谜一样的青年  阅读(450)  评论(0)    收藏  举报