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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
python音频处理用到的操作的示例代码
Oct 27 Python
python之文件读取一行一行的方法
Jul 12 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
python3中eval函数用法使用简介
Aug 02 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
Python Selenium库的基本使用教程
Jan 04 Python
Pytest allure 命令行参数的使用
Apr 18 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 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 date()日期时间函数详解
2010/05/16 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
PHP学习记录之数组函数
2018/06/01 PHP
浅谈PHP进程管理
2019/03/08 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
javascript数组输出的两种方式
2015/01/13 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
销售员自我评价怎么写
2013/09/19 职场文书
大学生写自荐信的技巧
2014/01/08 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
教师党员个人总结
2015/02/10 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
《静夜思》教学反思
2016/02/17 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python