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装饰器入门学习教程(九步学习)
Jan 28 Python
Fabric 应用案例
Aug 28 Python
Python 正则表达式实现计算器功能
Apr 29 Python
python生成词云的实现方法(推荐)
Jun 13 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
Python离线安装PIL 模块的方法
Jan 08 Python
python操作excel让工作自动化
Aug 09 Python
Python输出指定字符串的方法
Feb 06 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
关于Python错误重试方法总结
Jan 03 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不用正则采集速度探究总结
2008/03/24 PHP
js代码实现微博导航栏
2015/07/30 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
javascript css styleFloat和cssFloat
2010/03/15 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
用python生成1000个txt文件的方法
2018/10/25 Python
通过python爬虫赚钱的方法
2019/01/29 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
房地产项目策划书
2014/02/05 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers