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 Tkinter GUI编程入门介绍
Mar 10 Python
Python实现抓取城市的PM2.5浓度和排名
Mar 19 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
基于Python闭包及其作用域详解
Aug 28 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python中return self的用法详解
Jul 27 Python
python根据url地址下载小文件的实例
Dec 18 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
超简单的Python HTTP服务
Jul 22 Python
python相对企业语言优势在哪
Jun 12 Python
解决Python 写文件报错TypeError的问题
Oct 23 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
做个自己站内搜索引擎
2006/10/09 PHP
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
python读取Kafka实例
2019/12/23 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
python+OpenCV实现图像拼接
2020/03/05 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
如何清空Session
2015/02/23 面试题
应届生英语教师求职信
2013/11/05 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
父亲节感言
2015/08/03 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书