python实现电子产品商店


Posted in Python onFebruary 26, 2019

利用python实现以下功能:基于python下的电子产品商店

电子产品商店

v0.1

请选择商品:

=============================

1       Apple Watch          ¥3299.00

--------------------------------------

2       AirPods           ¥1288.00

--------------------------------------

3       Home Pod            ¥1299.00

--------------------------------------

请输入商品Id(回车去结账,0清空购物车):1

--------------------------------------

Id:1

名称:Apple Watch

价格:¥3299.00

库存:100

请输入购买数量:2

--------------------------------------

Apple Watch(¥3299) * 2 =¥6598.00

--------------------------------------

总金额:¥6598.00

请输入商品Id(回车去结账,0清空购物车):2

--------------------------------------

Id:2

名称:AirPods

价格:¥1288.00

库存:100

请输入购买数量:2

--------------------------------------

Apple Watch(¥3299.00) * 2 =¥6598.00

AirPods(¥1288.00) * 2      =¥2576.00

--------------------------------------

总金额:¥9174.00

1.首先,先在ProcessOn上画出一个基本的流程图,使自己有一个清晰的逻辑,如何去写这个项目,流程图如下:

python实现电子产品商店

2.其次,再列举出来这个项目中需要用到的类都有哪些,各自包含的属性是什么以及定义的都有哪些函数。然后在ProcessOn中 创建一个UML模板(从上往下依次是类名,属性,函数名),模板如下:

python实现电子产品商店

3.根据流程图和UML模板编写程序,代码如下:

(1)定义一个类名为Goods的类       

# 商品类
class Goods(object):
 def __init__(self,name,price,stock):
 self.id = 0
 self.name = name
 self.price = price
 self.stock = stock
 # 当打印对象时,输出的内容
 def __str__(self):
 return 'id:%s\n' \
  '名称:%s\n' \
  '价格:%s\n' \
  '库存:%s\n' % (self.id,self.name,self.price,
    self.stock)
 
 
if __name__ == '__main__':
 goods = Goods('Apple pods',2999,100)
 print(goods)
 goods2 = Goods('Apple Watch',3666,100)
 print(goods2)

(2)定义一个类名为Cartitem的类 

from goods import Goods
 
class CartItem(object):
 # 购物车商品
 def __init__(self,goods,count):
 self.goods = goods
 self.count = count
 
 def __str__(self):
 # %f是小数类型的占位符
 return '%s(¥%.2f)*%s' % (self.goods.name,
     self.goods.price,self.count)
 
 # 计算商品小计
 def amout(self):
 return self.goods.price * self.count
 
 
if __name__ == '__main__':
 goods = Goods('Apple pods',2999,100)
 # 创建购物车商品对象,需要传入一个商品对象
 item = CartItem(goods,2)
 money = item.amout()
 print(money)

(3)最后把前两个类整合一下,实现具体的功能:      

from goods import Goods
from cart import CartItem
 
class Shop(object):
 """商店"""
 def __init__(self):
 # 存储所有商品
 self.shops = []
 # 存储购物车商品
 self.cart = []
 # 加载商品
 self.load()
 
 def load(self):
 """加载商品"""
 self.add(Goods('Apple Watch', 3299, 100))
 self.add(Goods('AirPods', 1288, 100))
 self.add(Goods('Home Pod', 1299, 100))
 self.add(Goods('iPhone X', 6288, 100))
 
 def add(self, good):
 """
 设置新商品的id,添加到列表中
 :param good: 新商品
 :return: None
 """
 good.id = len(self.shops) + 1
 self.shops.append(good)
 
 def print_line(self):
 
 print('-'*50)
 
 def print_double_line(self):
 print('='*50)
 
 def list(self):
 """列出所有商品"""
 print('请选择商品:')
 self.print_double_line()
 # 遍历商品列表
 for g in self.shops:
 
  print('%s %s %s' % (g.id, g.name, g.price))
  self.print_line()
 
 def list_cart(self):
 """展示购物车商品,计算总价"""
 self.print_line()
 total = 0.0
 for item in self.cart:
  print('%s =¥%s' % (item, item.amout()))
  total += item.amout()
 self.print_line()
 print('总金额:¥%.2f' % total)
 
 def add_to_cart(self):
 """添加商品到购物车"""
 print('\n')
 g_id = input('请输入商品Id(回车去结账,0清空购物车):')
 
 if len(g_id) == 0:
  # 结账
  total = 0.0
  for item in self.cart:
 
  total += item.amout()
  self.print_line()
  print('请支付:¥%.2f' % total)
 
  # 清空购物车
  self.cart.clear()
  print('支付成功!')
 
 elif g_id == '0':
  self.cart.clear()
  print('购物车已清空!')
 else:
  # 计算商品索引
  idx = int(g_id) - 1
  # 取出商品
  goods = self.shops[idx]
  self.print_line()
  print(goods)
 
  count = int(input('请输入购买数量:'))
  # 判断数量是否大于库存量
  while count > goods.stock:
  count = int(input('没有这么多商品,请重新输入:'))
 
  # 如果商品已经在购物车中,修改商品数量
  # 变量表示在购物车中是否有这个商品
  is_exsts = False
  for item in self.cart:
  if item.goods == goods:
   # 说明在购物车中有该商品
   is_exsts = True
   item.count += count
   # 减少库存
   goods.stock -= count
 
  # 如果执行到这,is_exsts的值还是False,说明购物车中没有该商品
  if is_exsts == False:
  # 把商品添加到购物车
  goods.stock -= count
  self.cart.append(CartItem(goods, count))
 
  # 展示购物车商品,计算总价
  self.list_cart()
 
 def run(self):
 """运行应用程序"""
 print('智游电子产品商店')
 print('v1.0')
 print('\n')
 
 self.list()
 
 while True:
  self.add_to_cart()
 
shop = Shop()
shop.run()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用glob和rmtree删除目录子目录及所有文件的例子
Nov 21 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
python实现基本进制转换的方法
Jul 11 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
python 多线程重启方法
Feb 18 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
python 爬虫请求模块requests详解
Dec 04 Python
PyTorch 中的傅里叶卷积实现示例
Dec 11 Python
Python实现Kerberos用户的增删改查操作
Dec 14 Python
Python代码实现双链表
May 25 Python
Python selenium根据class定位页面元素的方法
Feb 26 #Python
python实现诗歌游戏(类继承)
Feb 26 #Python
Python实现简单查找最长子串功能示例
Feb 26 #Python
基于Python实现用户管理系统
Feb 26 #Python
python selenium firefox使用详解
Feb 26 #Python
Django实现学员管理系统
Feb 26 #Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 #Python
You might like
PHP令牌 Token改进版
2008/07/18 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
Javascript----文件操作
2007/01/18 Javascript
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
ES6中异步对象Promise用法详解
2019/07/31 Javascript
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
python使用配置文件过程详解
2019/12/28 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
Python如何定义有可选参数的元类
2020/07/31 Python
利用python汇总统计多张Excel
2020/09/22 Python
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
董事长秘书岗位职责
2013/11/29 职场文书
高分子材料与工程专业推荐信
2013/12/01 职场文书
团组织关系介绍信
2014/01/12 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
农村老人去世追悼词
2015/06/23 职场文书
保护动物的宣传语
2015/07/13 职场文书
培训简讯范文
2015/07/20 职场文书