作业:实现购物车可以添加手机、电脑等功能

手机类:

# -*- coding: utf-8 -*-
class IphoneInfo:def __init__(self):self._title = ''self._price = 0self._color = ''self._version = ''self._weight = ''def set_title(self, title):self._title = titledef get_title(self):return self._titledef set_price(self, price):self._price = pricedef get_price(self):return self._pricedef set_color(self, color):self._color = colordef get_color(self):return self._colordef set_version(self, version):self._version = versiondef get_version(self):return self._versiondef set_weight(self, weight):self._weight = weightdef get_weight(self):return self._weight

  

电脑类:

# -*- coding: utf-8 -*-
class ComputerInfo:def __init__(self):self._title = ''self._price = 0self._color = ''self._version = ''self._weight = ''self._cpu = ''self._rom = ''self._ssd = ''self._hhd = ''def set_title(self, title):self._title = titledef get_title(self):return self._titledef set_price(self, price):self._price = pricedef get_price(self):return self._pricedef set_color(self, color):self._color = colordef get_color(self):return self._colordef set_version(self, version):self._version = versiondef get_version(self):return self._versiondef set_weight(self, weight):self._weight = weightdef get_weight(self):return self._weightdef set_cpu(self, cpu):self._cpu = cpudef get_cpu(self):return self._cpudef set_rom(self, rom):self._rom = romdef get_rom(self):return self._romdef set_ssd(self, ssd):self._ssd = ssddef get_ssd(self):return self._ssddef set_hhd(self, hhd):self._hhd = hhddef get_hhd(self):return self._hhdif __name__ == '__main__':mac1 = ComputerInfo()mac1.set_title('big mac 13\'')mac1.set_price(3999)mac1.set_color('white')print(mac1.get_title())print(mac1.get_price())print(mac1.get_color())

  

购物车类:

# -*- coding: utf-8 -*-
from IphoneInfo import IphoneInfo
from ComputerInfo import ComputerInfoclass Cart:def __init__(self):self._deal_list = []self._deal_num = {}# add deal to cartdef add_deal(self, deal_list):self._deal_list.append(deal_list)def get_add_deal(self):return self._deal_list# delete deal from cartdef del_deal(self, del_name):self._deal_list.remove(del_name)def get_del_deal(self):return self._deal_list# 设置所有商品的默认个数def set_default_deal_num(self, deal_num=1):for i in range(len(self.get_add_deal())):# 把list的商品作为字典的keyif self.get_add_deal()[i] in self._deal_num:self._deal_num[self.get_add_deal()[i].get_version()] += deal_numelse:self._deal_num[self.get_add_deal()[i].get_version()] = deal_num# 设置单个商品个数def change_onedeal_num(self, version='iphone6', deal_num=1):# version = input('input the version which you want to change numbers:')# deal_num = input('input the numbers(eg:1/-1)')if self._deal_num.get(version) + deal_num > 0:self._deal_num[version] += deal_numelse:print('\033[1;31;0m change faild!\033[0m')# 返回商品+商品数据def get_alldeal_num(self):for key,value in self._deal_num.items():print(key, ':', value)return self._deal_num#展示购物车的商品def show_cart(self):print('the deals which in the cart :')sum_price = 0sum_dealnum = 0for deal_x in self.get_add_deal():# print(type(deal))# print(type(deal_x))print('the title :', deal_x.get_title())print('the price :', deal_x.get_price())print('the color :', deal_x.get_color())print('the version :', deal_x.get_version())#获取deal对应商品数量numbers = self._deal_num.get(deal_x.get_version())print('numbers:',numbers)print('-----------------')sum_price += deal_x.get_price() * numberssum_dealnum += 1print('your cart totle deal:', sum_dealnum, ', ', sum_price, 'yuan')print('-----------------------------')print('--------next cart------------')def del_deal_from_cart(self):not_like = input('delete the deal version which you do not like:')flag=0for deal_x in self.get_add_deal():if deal_x.get_version() == not_like:self.del_deal(deal_x)print('\033[1;32;0m delete success!\033[0m')print('\033[1;32;0m',deal_x.get_version(), 'is deleted\033[0m')print('--------------')flag = 1if flag == 0:print('\033[1;31;0m delete failed!\033[0m')print('\033[1;31;0m',not_like, 'is not in cart!\033[0m')def commit_order():flag = input('Do you want to settle your deals (Y/N):')if flag == 'Y' or flag == 'y':print('deal commit,it is ready going to cashier!')else:print('deal not commit!')#mock 购物车的数据
def mock_deal():iphone6 = IphoneInfo()iphone6.set_title('iphone6\'s title')iphone6.set_price(3999)iphone6.set_version('iphone6')iphone6.set_color('white')iphone6.set_weight('168g')iphone7 = IphoneInfo()iphone7.set_title('iphone7\'s title')iphone7.set_price(4999)iphone7.set_version('iphone7')iphone7.set_color('red')iphone7.set_weight('200g')iphone8 = IphoneInfo()iphone8.set_title('iphone8\'s title')iphone8.set_price(7999)iphone8.set_version('iphone8')iphone8.set_color('silvery')iphone8.set_weight('268g')mac13 = ComputerInfo()mac13.set_title('mac 13\'s title')mac13.set_price(6888)mac13.set_version('mac13')mac13.set_color('green')mac13.set_weight('1.3kg')mac13.set_cpu('i5')mac13.set_rom('4G')mac13.set_ssd('128G')mac13.set_hhd('1T')mac14 = ComputerInfo()mac14.set_title('mac 14\'s title')mac14.set_price(8888)mac14.set_version('mac14')mac14.set_color('red')mac14.set_weight('1.4kg')mac14.set_cpu('i5')mac14.set_rom('8G')mac14.set_ssd('256G')mac14.set_hhd('1T')mac15 = ComputerInfo()mac15.set_title('mac 15\'s title')mac15.set_price(10888)mac15.set_version('mac15')mac15.set_color('red')mac15.set_weight('1.5kg')mac15.set_cpu('i7')mac15.set_rom('16G')mac15.set_ssd('512G')mac15.set_hhd('2T')new_cart = Cart()new_cart.add_deal(iphone6)new_cart.add_deal(iphone7)new_cart.add_deal(iphone8)new_cart.add_deal(mac13)new_cart.add_deal(mac14)new_cart.add_deal(mac15)return new_cartif __name__ == '__main__':deals =  mock_deal()#设置购物车内所有商品的默认数量,default=1deals.set_default_deal_num(2)#展示购物车
    deals.show_cart()#设置商品个数/可拓展成用户输入version numbersdeals.change_onedeal_num('mac13',-1)deals.show_cart()#用户从购物车中删除商品
    deals.del_deal_from_cart()#展示购物车
    deals.show_cart()#确认提交订单
    commit_order()print('------over-----')

实现结果:可以实现购物车增加商品、删除某个商品、修改某个商品的个数等功能

转载于:https://www.cnblogs.com/fenglovellx/p/9022652.html

python:实现简单购物车增加商品、删除商品的功能相关推荐

  1. 宜立方商城—— 购物车增加、删除、修改数量、删除选中商品和清空购物车的实现

    1.  购物车的实现 1.1. 功能分析 1.购物车是一个独立的表现层工程. 2.添加购物车不要求登录.可以指定购买商品的数量. 3.展示购物车列表页面 4.修改购物车商品数量 5.删除购物车商品 模 ...

  2. python+scrapy简单爬取淘宝商品信息

    python结合scrapy爬取淘宝商品信息 一.功能说明: 已实现功能: 通过scrapy接入selenium获取淘宝关键字搜索内容下的商品信息. 待扩展功能: 爬取商品中的全部其他商品信息. 二. ...

  3. Vue3简易购物车--添加和删除商品,计算购买商品总价

    简易购物车 文章目录 简易购物车 v-model双向数据绑定 && 表单提交 计算属性computed v-for渲染数据和标签 添加和删除功能 效果图: v-model双向数据绑定 ...

  4. Python字典常见操作方法 - 增加、删除、修改

    字典的常见操作无非就是增删改查而已,现在了解下关于字典增删改的操作方法.字典的语法和前面其他学过的数组都不同,大括号里面的数据是以键值对的形式出现的,不支持下标查找,支持key查找. 一.字典 - 新 ...

  5. python写简单购物车_python简单的购物车程序(含代码)

    效果图片:\u201C在2017年9月4日@author: len\u201Cproduct_list =[(\u201C机器人\u201D,200000年),(\u201CMacPro\u201D, ...

  6. 【Python】torrentParser1.04 增加获得磁力链URI功能

    代码: #------------------------------------------------------------------------------------ # torrentP ...

  7. [原创]python之简单计算器(超详解,只有基本功能+-*/,还有括号处理)

     不想看过程的话,直接看文章最后的正式源码 作业需求及分析: 流程图 https://www.processon.com/diagraming/580c5276e4b03c844a5a9716 初期感 ...

  8. python做购物车代码大全-python 字典实现简单购物车

    # -*- coding: utf-8 -*- #总金额 asset_all=0 i1=input('请输入总资产:') asset_all=int(i1) #商品列表 goods=[ {'name' ...

  9. JQuery实现数据录入表格以及删除与编辑功能

    这是我在老师布置的JQuery作业上增加了自己的想法(增加了删除与编辑功能) 原任务很简单 只是利用JQuery将输入的数据添加到表格中 先看看效果吧 点击录入 点击第一行的删除 点击第一行的编辑 点 ...

最新文章

  1. 东野圭吾最值得看的书排行榜_东野圭吾最值得看的7本作品,我进了坑就再也没出来...
  2. 分数等级_志愿填报丨填报公办普通高中志愿,分数成绩和等级成绩均需关注
  3. 配置mysql 问题解决
  4. 短信语音验证码发展的必然趋势
  5. ICCV 2021 论文汇总!Vision Transformer
  6. Glide 4.x之ModelLoader简单分析
  7. linux信号常用函数
  8. office哪个版本最好用?都有哪些版本
  9. 梨花带雨html音乐播放器源码,梨花带雨 - 雨陌文化传媒 - 5SING中国原创音乐基地...
  10. 最新某某《微专业-数据分析师》
  11. 什么是java集合,java集合有几类?
  12. Linux内核中的IPSEC实现2
  13. fastadmin多级联动
  14. 屏蔽状态栏通知,以及控制手机有打过电话,同时控制某些应用一天只能弹出一次状态栏通知
  15. CodeForces103B - Cthulhu 解题报告
  16. Google 应用出海指南针第五期强势火热启动!
  17. 获取当前登录QQ号码
  18. C. Cyclic Permutations
  19. 一场关于未来的商战 说说京东苏宁价格战
  20. 丹东纺专99届计算机专业,丹东纺专学报

热门文章

  1. 读书笔记之《程序员必读的职业规划书》
  2. 关于salt MD5
  3. FTP服务器配置与管理(4) 服务器端的常用配置及FTP命令
  4. WindowsServer2012史记5-简洁,管理更多的服务器
  5. window.parent ,window.top,window.self 详解
  6. AGC001 补题小结
  7. Could not find a suitable table factory for ‘org.apache.flink.table.factories.TableSourceFactory‘
  8. Please move ‘proctime(r_proctime)‘ to the end of the schema.以及rowtime和proctime
  9. flink的CEP调研与使用
  10. 第1章-什么是深度学习(笔记)