博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洗礼灵魂,修炼python(76)--全栈项目实战篇(4)—— 购物车系统
阅读量:6951 次
发布时间:2019-06-27

本文共 2030 字,大约阅读时间需要 6 分钟。

要求:

1.基本符合日常购物车的要求(根据你的想法开放性提升功能)

2.展示商品信息,并且可随时上新商品

3.用户购买每一样商品时都对所剩的钱做一次对比,如果够则提示“已购买”,如果不够提示“余额不足”

4.最后结账的时候,打印出一共买了那些商品,以及用了多少钱,剩余多少钱

5.用户购买商品时,尽量多给一些提示用语,方便提示用户

 

分析:

1.这个没什么可说的,大家都购过物,根据平时的经验来实现功能即可

2.商品信息需要手动添加,用的数据类型是什么,根据你的习惯用字典,还是列表,还是元组

 

 

我希望你已经思考过怎么解决这个问题再看的下面:

 

同样的,相关文件和代码已发布到GitHub,后期优化也会继续发到github上,地址:

 

 

代码:

#!usr/bin/env python#-*- coding:utf-8 -*-# author:yangva# datetime:2017/12/5 0005 18:00from collections import Counterimport copy# 商品可以随时上新,也可用另一个文本文档存储shop_dict = {'1':{'iphoneX':6000},'2':{'MAC':9000},'3':{'coffee':50},'4':{'pythonbook':80},'5':{'CD':20}}myshop_cart = [] #购物车print('欢迎来到XXX购物平台!\n您看上哪个商品,输入商品对应的【id】即可购买,如果购物结束输入【quit】即可退出')for i,m in shop_dict.items():    for j,k in m.items():        print('商品id:%s\t商品名:%s\t\t商品单价:%s'%(i,j,k))salary = int(input('请输入您的透支额度:'))temp = salary #作为缓存总额,用于后面总共消费多少作计算while True:    for i,m in shop_dict.items():        for j,k in m.items():            print('商品id:%s\t商品名:%s\t\t商品单价:%s'%(i,j,k))    shopping = input('请输入商品id(退出请输入“quit”)>>>:')    if shopping in shop_dict.keys():        if salary < list(shop_dict[shopping].values())[0]:            print('您的余额不足')        else:            salary -= list(shop_dict[shopping].values())[0]            myshop_cart.append(list(shop_dict[shopping].keys())[0]) #把商品添加至购物车            print('您已购买商品【%s】,剩余余额:%s\n'%(list(shop_dict[shopping].keys())[0],salary))            if not salary:                print('您的余额为0,不能再购买任何东西,程序已退出,欢迎下次光临')                break    elif shopping == 'quit': #购买结束,到收银台结账        print('您一共购买了以下商品:')        for i,j in dict(Counter(myshop_cart)).items():            print('商品名:%s\t数量:%s'%(i,j))        print('您总共消费了%s元,可用余额为%s元'%(temp-salary,salary))        print('欢迎下次光临!')        break    else:        print('您的输入有误,请查看是否有id为【%s】的商品'%shopping)

 

操作环境随你,windows还是ubuntu上都可以

 

效果测试:

(部分截图,完整的自己去尝试吧)

 

 

总结优化:

可以添加图形化界面;在客户购买商品的时候,可以不定时在客户购物时发布公告宣布上新或者打折促销的商品等等的,命题开放,自己去优化了

其实也很简单的,就用了下数据类型,input,以及循环语句就实现了,根本没有用到多高深的代码,前面的账户管理也是,现在都是初级阶段,简单是应该的,慢慢来

 

 

 

转载于:https://www.cnblogs.com/yangva/p/8036649.html

你可能感兴趣的文章
apper安卓×××
查看>>
大型网站技术架构(一)大型网站架构演化
查看>>
Log4j 1使用教程
查看>>
如何将PDF转换成Word
查看>>
plusgantt的项目管理系统实战开发最全课程
查看>>
vlan理论03-vlan映射
查看>>
Linux终端的总结和shell
查看>>
Java8 十大新特性详解
查看>>
Maven学习总结(五)——聚合与继承
查看>>
Oracle AWR 阙值影响历史执行计划
查看>>
集成显卡连接显示器的线跟独立显卡的不同么,分别叫什么
查看>>
我的友情链接
查看>>
Java是传值还是传引用
查看>>
文件夹权限
查看>>
【翻译】Siesta事件记录器入门
查看>>
将Ext JS 5应用程序导入Web项目以及实现本地化
查看>>
HTML5开发手机项目—个人总结
查看>>
《完整部署 OCS-NG》
查看>>
codeforces 812B. Sagheer, the Hausmeister
查看>>
第24周SDAI缓解能否预测远期RA骨破坏受抑制
查看>>