python开发购物车

1 业务需求

商品中心

显示库存的商品

商品能够加入到购物车

个人中心

购物车

修改购物车的商品

下单

完成的订单

订单详情

账户余额

2 代码实现

  1 # 定义全局变量信息
  2 # 商品编号信息
  3 goods_num = {‘G1‘: ‘皮鞋‘, ‘G2‘: ‘皮带‘, ‘G3‘: ‘帽子‘, ‘G4‘: ‘笔记本‘}
  4 # 商品单价
  5 goods_price = {‘皮鞋‘: 165, ‘皮带‘: 99, ‘帽子‘: 49, ‘笔记本‘: 3999}
  6 # 购物车
  7 shopping_car = {}
  8 # 完成的订单
  9 already_paid = {}
 10 # 个人编号的功能
 11 IdCenter_Num = {‘M1‘:"shopping_car", ‘M2‘:"already_paid"}
 12 # 个人中心的功能
 13 IdCenter_dict = {"shopping_car": shopping_car, ‘already_paid‘: already_paid}
 14 # 账户余额
 15 AccountBalance = [400, ]
 16
 17
 18 # 商品选择页面
 19 def GoodsFunction():
 20     # 打印商品编号,商品以及对应价格,供选择
 21     print(‘序号\t\t\t商品\t\t\t价格‘)
 22     for i in goods_num:
 23         print(‘%s\t\t\t%s\t\t\t%s‘ % (i, goods_num.get(i), goods_price.get(goods_num.get(i))))
 24     result = input("请输入序号:").strip()
 25     # 判断传入参数
 26     if result == ‘‘:
 27         print("Error:不能为空")
 28     elif result == ‘0‘ or result == "1":
 29         return result
 30     elif result in goods_num:
 31         goodname = goods_num.get(result)
 32         # 参数为商品编号,传入到AddGood()函数
 33         AddGood(goodname)
 34     else:
 35         print("Error:指令错误,请重新输入")
 36     return ‘0‘
 37
 38
 39 # 加入购物车
 40 def AddGood(goodname):
 41     N_1 = int(input(‘请输入%s的数量:‘ % goodname))
 42     if N_1 > 0:
 43         # 判断商品元素是否存在,存在则修改数量,不存在则追加
 44         if goodname in shopping_car:
 45             shopping_car[goodname] = N_1
 46             print(shopping_car)
 47         else:
 48             shopping_car.update({goodname:N_1})
 49             print(shopping_car)
 50     else:
 51         print(‘Error:商品数量有误‘)
 52
 53
 54 # 个人中心
 55 def GoIdCenter():
 56     print("欢迎来到个人中心,\n序号\t选项")
 57     for i in IdCenter_Num:
 58         print(‘%s\t\t%s‘ % (i, IdCenter_Num.get(i)))
 59     print("\n账户余额:%s\n0\t商品页\n1\t个人中心(购物车、订单、余额)" % AccountBalance[0])
 60     result = input("请输入序号:").strip()
 61     if result == ‘‘:
 62         print("Error:不能为空,请重新输入!")
 63     elif result == ‘0‘ or result == ‘1‘:
 64         return result
 65     elif result in IdCenter_Num:
 66         if result == ‘M1‘:
 67             # 购物车操作函数,flag作为操作标识,如果返回不为空则将返回值在此返回并跳出循环
 68             flag = ‘‘
 69             while True:
 70                 flag = ShopCartFun()
 71                 if flag != ‘‘:
 72                     return flag
 73                     continue
 74         elif result == ‘M2‘:
 75             # 订单查看函数
 76             GoodOrder()
 77             return 1
 78     else:
 79         print("Error:指令错误,请重新输入!")
 80     return ‘1‘
 81
 82
 83 # 购物车操作
 84 def ShopCartFun():
 85     # 判断购物车是否为空
 86     if shopping_car:
 87         print(‘购物车\n商品名\t\t数量\t\t单价\t\t总价‘)
 88         for i in shopping_car:
 89             # 打印购物车商品详单
 90             print(‘%s\t%s\t\t%s\t\t%s‘ % (i, shopping_car.get(i), goods_price.get(i), shopping_car.get(i) * goods_price.get(i)))
 91     else:
 92         print("你的购物车空旷如也")
 93     print(‘\n0\t商品页\n1\t个人中心(购物车、订单、余额)\n2\t清空购物车\n3\t结账\n修改商品数量请输入商品名。‘)
 94     result = input("请输入:").strip()
 95     if result == ‘‘:
 96         print("不能为空,请重新输入")
 97     elif result == ‘0‘ or result == ‘1‘ or result == ‘3‘:
 98         # 3为结账选项,返回到主函数,调用结账函数
 99         return result
100     elif result in shopping_car:
101         # 修改商品数量,再次调用AddGood()函数
102         AddGood(result)
103     else:
104         print("指令错误,请重新输入")
105     return ‘‘
106
107
108 # 结账函数
109 def CheckOut():
110     # 购物车金额合计
111     Total = 0
112     for i in shopping_car:
113         Total += shopping_car.get(i) * goods_price.get(i)
114     print(Total)
115     # 判断是否满足结账条件
116     if Total > AccountBalance[0]:
117         print("余额不足")
118     else:
119         import time
120         # 生成时间戳,作为订单号
121         Date = int(time.time())
122         # 生成订单呢
123         already_paid.update({Date:shopping_car})
124         # 扣款
125         AccountBalance[0] = AccountBalance[0] - Total
126         # 购物车清空
127         shopping_car.clear()
128     return ‘1‘
129
130
131 # 查看订单详情
132 def GoodOrder():
133     if already_paid:
134         print(‘完成订单\n订单号‘)
135         for i in already_paid:
136             print(i)
137         print(‘\n0\t商品页\n1\t个人中心(购物车、订单、余额)‘)
138         N_2 = int(input(‘\n输入要查看的订单号:‘).strip())
139         if N_2 == ‘‘:
140             print(‘不能为空,请重新输入‘)
141         elif N_2 == ‘0‘ or N_2 == ‘1‘:
142             return N_2
143         elif N_2 in already_paid:
144             print(‘订单%s详情商品名\t数量\t总价‘%N_2)
145             for i in already_paid.get(N_2):
146                 print(‘%s\t%s\t%s‘ % (i, already_paid.get(N_2).get(i), goods_price.get(i) * already_paid.get(N_2).get(i)))
147         else:
148             print(‘输入有误‘)
149
150
151 if __name__ == "__main__":
152     N = GoodsFunction()
153     while True:
154         if N == ‘0‘:
155             N = GoodsFunction()
156         elif N == ‘1‘:
157             N = GoIdCenter()
158         elif N == ‘2‘:
159             shopping_car = {}
160             N = GoodsFunction()
161         elif N == ‘3‘:
162             N = CheckOut()

3 个人理解

  任何事物都可分为两个维度,属性和方法,属性可理解数据结构,方法就是对数据结构操作的动作。

  确定数据的结构,数据结构是用来存存储数据的地方,它本身也是对象。

  一个函数的返回结果可能是另外一个函数形式参数。

  无论是面向对象还是面向过程的编程,都是需要立足于现实的业务逻辑。

  对于程序,我们需要多写多练习,当你回头看的时候,你会发现原来困扰你的问题会很简单。

4 思路来源

http://www.cnblogs.com/ikmi/p/6195065.html

原文地址:https://www.cnblogs.com/pythonproject/p/8944135.html

时间: 2024-11-02 17:07:28

python开发购物车的相关文章

Python开发购物车程序

#需求 开发一个购物车程序 要求用户输入工资,然后打印购物车菜单 用户可以不断的购买商品,直到钱不够为止 在菜单中用户可以先择打印自已购买的商品和剩余金额 #脚本内容 [[email protected] opt]# cat shopping_cart.py  #!/usr/bin/env python #_*_ coding:utf-8 _*_ import time import sys import os #商品价格 IOS_COMPETER5 = 9000 IOS_SHOUJI5 = 5

为什么越来越多的企业选择使用Python开发?

近来,Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于多种操作系统,目前在国际上非常流行,正在得到越来越多的应用.1.简介    Python,是一种面向对象.直译式的计算机程序语言,具有近二十年的发展历史.它包含了一组功能完备的标准库,能够轻松完成很多常见的任务.它的语法简单,与其他大多数程序设计语言使用大括号不同,它使用缩进来定义语句块.    Python支持命令式程序设计.面向对象程序设计.函数式编程.面向侧面的程序设计.范型编程多种编程范式. 2

Windows下Python开发工具推荐

*  如果只是纯Python开发人员,WingIDE 是不二之选. 优点:短小精悍,启动快.调试快.反应快.Auto-completion快. 没有Eclispe的巨大臃肿.反应迟钝.跛脚的调试功能. 快捷键可以在Emacs,VS,Eclipse等之间自己选择. 个人最喜欢的功能是 Debug Probe,简直是交互式开发的利器. Linux和Wingows下都能用,一个安装包搞定. *  如果是Python和C的混合编程,需要进行mixed-mode C/Python debugging, 则

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

linux 下安装 mysql 并配置 python 开发环境

1.安装 mysql ,安装过程中将提示设置 root 用户的密码,默认可以设置为 rootadmin . $ sudo apt-get install mysql-server 2.安装 mysql 开发工具(不安装时,安装 MySQL-python 提示错误 "mysql_config not found"). $ sudo apt-get install libmysqld-dev 3.安装 python 的 mysql 库 MySQL-python (首先安装 python-d

Python开发【第一篇】:目录

本系列博文改编自武沛齐老师的原创博文,主要包含  Python基础.前端开发.Web框架.缓存以及队列等内容 ,用于学习记录成长!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

Ruby与Python开发的环境IDE配置(附软件的百度云链接)

Ruby开发环境配置 1.Aptana_RadRails(提示功能不好,开发Ruby不推荐) 链接:http://pan.baidu.com/s/1i5q96K1 密码:yt04 2.Aptana Studio3(非常非常好,Ruby和Python开发首选,,和Eclipse使用基本完全一样,提示功能完爆Eclipse,而且界面非常漂亮) 链接:http://pan.baidu.com/s/1cFQr2u 密码:vfc4 教程地址:http://www.cnblogs.com/lsgwr/p/5

visual studio 2015 搭建python开发环境,python入门到精通[三]

在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo,这里略带一句,其实就"学习python"而言,比较建议使用pycharm,pycharm可以设置VS或者eclipse等多种IDE的编码,可以让绝大部分其他语言使用IDE的习惯者更容易上手.这一点兼容确实做的很好.不过既然这么多园友要求使用vs开发python的话,就介绍一下visual