购物思路:
(推荐教程:python基础教程)
打印商品内容
引导用户选择商品
验证输入是否合法
将用户选择商品通过choice取出来
如果钱够,用本金saving减去该商品价格
将该商品加入购物车
循环遍历购物车里的商品,购物车存放的是已买商品
实现代码:
product_list=[ ('Mac电脑',9500), ('windows电脑',800), ('法拉利',8800000), ('python入门教程',100), ('华为',6000), ] saving=input('please input your money:') shopping_car=[] if saving.isdigit(): saving=int(saving) while True: #打印商品内容 for i,v in enumerate(product_list,1): print(i,'>>>>',v) #引导用户选择商品 choice=input('选择购买商品编号[退出:q]:') #验证输入是否合法 if choice.isdigit(): choice=int(choice) if choice>0 and choice<=len(product_list): #将用户选择商品通过choice取出来 p_item=product_list[choice-1] #如果钱够,用本金saving减去该商品价格,并将该商品加入购物车 if p_item[1]<saving: saving-=p_item[1] shopping_car.append(p_item) else: print('余额不足,还剩%s'%saving) print(p_item) else: print('编码不存在') elif choice=='q': print('------------您已经购买如下商品----------------') #循环遍历购物车里的商品,购物车存放的是已买商品 for i in shopping_car: print(i) print('您还剩%s元钱'%saving) break else: print('invalid input')
测试:
please input your money:10000000 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:1 ('Mac电脑', 9500) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:1 ('Mac电脑', 9500) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:1 ('Mac电脑', 9500) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:2 ('windows电脑', 800) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:3 ('法拉利', 8800000) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:3 余额不足,还剩1170700 ('法拉利', 8800000) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:1 ('Mac电脑', 9500) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:4 ('python入门教程', 100) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:5 ('华为', 6000) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:6 编码不存在 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:7 编码不存在 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:1 ('Mac电脑', 9500) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:1*4 invalid input 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:3 余额不足,还剩1145600 ('法拉利', 8800000) 1 >>>> ('Mac电脑', 9500) 2 >>>> ('windows电脑', 800) 3 >>>> ('法拉利', 8800000) 4 >>>> ('python入门教程', 100) 5 >>>> ('华为', 6000) 选择购买商品编号[退出:q]:q ------------您已经购买如下商品---------------- ('Mac电脑', 9500) ('Mac电脑', 9500) ('Mac电脑', 9500) ('windows电脑', 800) ('法拉利', 8800000) ('Mac电脑', 9500) ('python入门教程', 100) ('华为', 6000) ('Mac电脑', 9500) 您还剩1145600元钱 Process finished with exit code 0