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跳出循环语句continue与break的区别
Aug 25 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
python简单实现旋转图片的方法
May 30 Python
Python-嵌套列表list的全面解析
Jun 08 Python
python编写Logistic逻辑回归
Dec 30 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
python批量处理文件或文件夹
Jul 28 Python
Python hashlib常见摘要算法详解
Jan 13 Python
Python socket处理client连接过程解析
Mar 18 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 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 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
requireJS模块化实现返回顶部功能的方法详解
2017/10/16 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python中cPickle用法例子分享
2014/01/03 Python
详解Django中Request对象的相关用法
2015/07/17 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Python实现的质因式分解算法示例
2018/05/03 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
给老婆大人的检讨书
2014/02/24 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
Python中time标准库的使用教程
2022/04/13 Python