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中enumerate的用法实例解析
Aug 18 Python
Python中为什么要用self探讨
Apr 14 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
python统计字母、空格、数字等字符个数的实例
Jun 29 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
Pytorch 实现权重初始化
Dec 31 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
Python文件操作基础流程解析
Mar 19 Python
Python ORM框架Peewee用法详解
Apr 29 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和ACCESS写聊天室(八)
2006/10/09 PHP
php读取3389的脚本
2014/05/06 PHP
php 实现进制相互转换
2016/04/07 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
js控制框架刷新
2008/08/01 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
详细介绍Python函数中的默认参数
2015/03/30 Python
复习Python中的字符串知识点
2015/04/14 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
django2 快速安装指南分享
2018/01/05 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
技术副厂长岗位职责
2013/12/26 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
员工表扬信怎么写
2015/05/05 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技