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 相关文章推荐
浅谈numpy数组的几种排序方式
Dec 15 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
python实现银行管理系统
Oct 25 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
python 导入数据及作图的实现
Dec 03 Python
如何通过Django使用本地css/js文件
Jan 20 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
python程序输出无内容的解决方式
Apr 09 Python
SpringBoot首页设置解析(推荐)
Feb 11 Python
Python中json.load()和json.loads()有哪些区别
Jun 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调用三种数据库的方法(1)
2006/10/09 PHP
php获取汉字首字母的函数
2013/11/07 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
js 加密压缩出现bug解决方案
2014/11/25 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
js实现搜索栏效果
2018/11/16 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
利用Python进行异常值分析实例代码
2017/12/07 Python
Python numpy 点数组去重的实例
2018/04/18 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
创建索引时需要注意的事项
2013/05/13 面试题
大学生实习证明范文(5篇)
2014/09/18 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
三八妇女节主持词
2015/07/04 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
四十年同学聚会致辞
2015/07/28 职场文书