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中的偏函数
Apr 27 Python
Python函数式编程指南(四):生成器详解
Jun 24 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
python文本数据处理学习笔记详解
Jun 17 Python
简单介绍python封装的基本知识
Aug 10 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
Python实现二叉树的最小深度的两种方法
Sep 30 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
基于PyQt5制作一个群发邮件工具
Apr 08 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
第七节--类的静态成员
2006/11/16 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php读取csc文件并输出
2015/05/21 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
用原生js做单页应用
2017/01/17 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
python模块之paramiko实例代码
2018/01/31 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
python怎么提高计算速度
2020/06/11 Python
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
毕业生自我鉴定
2013/11/05 职场文书
三年级学生评语
2014/04/23 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
交警失职检讨书
2015/01/26 职场文书
食堂卫生管理制度
2015/08/04 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
话题作文之诚信
2019/11/28 职场文书