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 11 Python
Python paramiko模块的使用示例
Apr 11 Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 Python
Django中使用Celery的教程详解
Aug 24 Python
Python字符串对象实现原理详解
Jul 01 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
Python 支持向量机分类器的实现
Jan 15 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
python脚本定时发送邮件
Dec 22 Python
Python 中的函数装饰器和闭包详解
Feb 06 Python
pandas 实现将NaN转换为None
May 14 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 Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
flash用php连接数据库的代码
2011/04/21 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
一个简单的javascript类定义例子
2009/09/12 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
浅析JavaScript动画
2015/06/10 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
Python实现提取文章摘要的方法
2015/04/21 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
机械工程系毕业生求职信
2013/09/27 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
病人慰问信范文
2015/02/15 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
golang操作rocketmq的示例代码
2022/04/06 Golang