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之yield表达式学习
Sep 02 Python
编写Python脚本来获取Google搜索结果的示例
May 04 Python
利用Python破解验证码实例详解
Dec 08 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
python实现音乐下载的统计
Jun 20 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python实现网站表单提交和模板
Jan 15 Python
python实现视频分帧效果
May 31 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
May 13 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Python制作动态字符画的源码
Aug 04 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 id 实现session共享和登录验证的代码
2012/06/03 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
常用的javascript function代码
2008/05/23 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python使用正则表达式提取网页URL的方法
2015/05/26 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
python绘制雪景图
2019/12/16 Python
python实现无边框进度条的实例代码
2020/12/30 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
药学专业大学生自荐信
2013/09/28 职场文书
趣味运动会活动方案
2014/02/12 职场文书
机械专业求职信
2014/05/25 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
工作检讨书怎么写
2015/01/23 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
Go语言设计模式之结构型模式
2021/06/22 Golang
html5实现点击弹出图片功能
2021/07/16 HTML / CSS