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使用arp欺骗伪造网关的方法
Apr 24 Python
Python字符串替换实例分析
May 11 Python
Python中类型检查的详细介绍
Feb 13 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
基于Django OneToOneField和ForeignKey的区别详解
Mar 30 Python
Python办公自动化之Excel(中)
May 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缓存类分享     php缓存机制
2014/01/22 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
JavaScript中的Document文档对象
2008/01/16 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
JavaScript入门基础
2015/08/12 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
js实现本地图片文件拖拽效果
2017/07/18 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
Python实现注册登录系统
2017/08/08 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
Nike瑞士官网:Nike CH
2021/01/18 全球购物
什么是网络协议
2016/04/07 面试题
专升本自我鉴定
2013/10/10 职场文书
大学生学业生涯规划
2014/01/05 职场文书
学校门卫管理制度
2014/01/30 职场文书
物业消防安全责任书
2014/07/23 职场文书
联谊活动总结
2014/08/28 职场文书
超市主管竞聘书
2015/09/15 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
Java使用HttpClient实现文件下载
2022/08/14 Java/Android