Python实现购物车功能的方法分析


Posted in Python onNovember 10, 2017

本文实例讲述了Python实现购物车功能的方法。分享给大家供大家参考,具体如下:

1、程序的源代码如下:

salary = input('input your salary:')
if salary.isdigit:
  salary = int(salary)
else:
  exit('salary is not digit!!')
welcome_msg = 'welcome to our shoping mall'
print(welcome_msg.center(50,'-'))
product_list = [
  ('Iphone',5888),
  ('Mac Air',8000),
  ('XiaoMi',19.9),
  ('coffee',30),
  ('Tesla',820000),
  ('Bike',700),
  ('Cloth',200)
]
shop_car = []
#推出标志位
exit_flag = 0
while exit_flag is not True:
  print('product list :'.center(50,'-'))
  for item in enumerate(product_list):
    index = item[0]   #获得商品序号
    p_name = item[1][0]  #获得商品名称
    p_price= item[1][1]  #获得商品价格
    print(index,p_name,p_price)
  user_choice = input('[q=quit,c=check] what do you want to buy?:')
  if user_choice.isdigit():
    user_choice = int(user_choice)
    if user_choice < len(product_list): #输入的商品序号要在范围之内
      p_item = product_list[user_choice] #选择的商品
      if p_item[1] <= salary: #买得起
        shop_car.append(p_item) #放入购物车
        salary -= p_item[1] #减钱
        print('purchased products are:'.center(40, '-'))
        for item in shop_car:
          print(item)
        print('Your balance is [%s]' % salary)
      else:          #买不起
        print('Your balance is [%s],cannot buy the product!'%salary)
    else:
      print('we do not have the product,please input again!')
  elif user_choice == 'q' or user_choice == 'quit':
    print('purchased products are:'.center(40,'-'))
    for item in shop_car:
      print(item)
    print('END '.center(40,'-'))
    print('Your balance is [%s]'%salary)
    exit_flag =True
  elif user_choice == 'c' or user_choice == 'check':
    print('purchased products are:'.center(40, '-'))
    for item in shop_car:
      print(item)
    print('Your balance is %d' % salary)
    print('Check '.center(40, '-'))
  else:
    print('Incorrect input ,please input again!!')

2、程序运行结果

input your salary:10000
-----------welcome to our shoping mall------------
------------------product list :------------------
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q=quit,c=check] what do you want to buy?:0
added [[('Iphone', 5888)]] into shop car ,yourcurrent balence is 4112
------------------product list :------------------
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q=quit,c=check] what do you want to buy?:1
Your balance is [4112],cannot buy the product!
------------------product list :------------------
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q=quit,c=check] what do you want to buy?:c
shop car list are [[('Iphone', 5888)]],your balance is 4112
------------------product list :------------------
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q=quit,c=check] what do you want to buy?:4
Your balance is [4112],cannot buy the product!
------------------product list :------------------
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q=quit,c=check] what do you want to buy?:q
--------purchased products are:---------
('Iphone', 5888)
------------------END ------------------
Your balance is [4112]
Process finished with exit code 0

3、学习到的知识点

(1)print('product list :'.center(50,'-'))

>>> print('product list :'.center(50,'-'))
------------------product list :------------------

(2)for item in enumerate(product_list):

>>> for item in enumerate(product_list):
print(item)
(0, ('Iphone', 5888))
(1, ('Mac Air', 8000))
(2, ('XiaoMi', 19.9))
(3, ('coffee', 30))
(4, ('Tesla', 820000))
(5, ('Bike', 700))
(6, ('Cloth', 200))

enumerate函数返回一个生成器对象:(index,item)的元组。

(3)这里使用了列表+元组的形式存储商品列表,而不是字典,因为字典是无序的,每次打印顺序都不一样,而且不能通过索引进行取值。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python生成随机数的方法
Jan 14 Python
详解Python的单元测试
Apr 28 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
python开发之基于thread线程搜索本地文件的方法
Nov 11 Python
python3+PyQt5使用数据库表视图
Apr 24 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python实现转圈打印矩阵
Mar 02 Python
python实现移位加密和解密
Mar 22 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
python中图像通道分离与合并实例
Jan 17 Python
Python 数据科学 Matplotlib图库详解
Jul 07 Python
Python实现的单向循环链表功能示例
Nov 10 #Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 #Python
浅谈Python处理PDF的方法
Nov 10 #Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 #Python
python使用邻接矩阵构造图代码示例
Nov 10 #Python
python先序遍历二叉树问题
Nov 10 #Python
简单了解OpenCV是个什么东西
Nov 10 #Python
You might like
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python中对list去重的多种方法
2014/09/18 Python
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
numpy中索引和切片详解
2017/12/15 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
python raise的基本使用
2020/09/10 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
高一历史教学反思
2014/01/13 职场文书
红楼梦读书笔记
2015/06/25 职场文书
五一放假通知怎么写
2015/08/18 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers