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批量从es取数据的方法(文档数超过10000)
Dec 27 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
Python与C++中梯度方向直方图的实现
Mar 17 Python
Python中的socket网络模块介绍
Jul 23 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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获取表单中多个同名input元素的值
2014/03/20 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
Python实现包含min函数的栈
2016/04/29 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
flask-restful使用总结
2018/12/04 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
python实现的分层随机抽样案例
2020/02/25 Python
Python列表推导式实现代码实例
2020/09/09 Python
python实现移动木板小游戏
2020/10/09 Python
2013年大学生的自我鉴定
2013/10/24 职场文书
装修设计师求职信
2014/02/26 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
董事长岗位职责
2015/02/13 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书