python开发的独立商城
python实现电子产品商店利用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上画出一个基本的流程图,使自己有一个清晰的逻辑,如何去写这个项目,流程图如下:
2.其次,再列举出来这个项目中需要用到的类都有哪些,各自包含的属性是什么以及定义的都有哪些函数。然后在processon中 创建一个uml模板(从上往下依次是类名,属性,函数名),模板如下:
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() |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/qq_42598133/article/details/81103385