核心内容:


1、算法展示
2、代码展示
3、相关文件展示


算法示例:

代码示例:

#!/usr/bin/python
# -*- coding:utf-8 -*-"""
Author:Zmy
Date:2017年5月15日14:06:27
Function:Shopping cart system simulation
1、模拟用户3次验证登录
2、通过分页的方式显示商品信息
3、用户进行购物(加入到购物车)
4、用户进行结账
5、将用户的购物记录、登录次数、账户余额等同步到最新的文件中
6、用户通过模糊匹配查询的方式查询相应的购物记录
"""#读取个人账户的相关信息
fr1 = open("personal_account","r",encoding="utf-8")
personal_data = fr1.read()
fr1.close()#将用户的完整信息存储到字典中
user_info_dict = {}
user_info = personal_data.split("\n")
for item in user_info:temp = item.split("|")user_info_dict[temp[0]] = {"pass_wd": temp[1],"times"  : temp[2],"salary" : temp[3]}#读取商品列表的相关信息
fr2 = open("goods_information", "r", encoding="utf-8")
goods_data = fr2.read()
fr2.close()#将商品的完整信息存储到列表中
good_info_list = []
good_info = goods_data.split("\n")
for item in good_info:temp = item.split("|")good_info_dict = {}good_info_dict = {"good_name"   : temp[0],"good_salary" : temp[1]}good_info_list.append(good_info_dict)#读取用户之前的购物记录信息并存储到列表中(存储方式最简单的一种,没有涉及到字典)
fr3 = open("shop_record", "r", encoding="utf-8")
per_good_data = fr3.read()
fr3.close()user_good_list = []
per_good_info = per_good_data.split("\n")
for item in per_good_info:user_good_list.append(item)#正式开始进入程序模块
#function1:3次登录验证操作log_count = 0 #登录尝试的次数
log_flag = 0  #若用户登录成功,则将相应的登录的状态log_flag置为1#通过search_info()查看用户之前对应的购物记录
def search_info():#标志位的创建是一个创新search_flag = 0while True:if search_flag == 1:breakelse:good_info = input("请输入相关的商品信息:")print("与其相关的购物记录:")for item in user_good_list:if good_info in item:print(item)serch_lable = input("亲,是否继续查看? yes or no ?\n")if serch_lable == "no":search_flag = 1#通过shop_trade函数进行相应的购物操作
shop_car_list = []
page_sum = len(good_info_list)//10 + 1  #这里应该继续优化一下
def shop_trade():#对于可能多次循环操作的设置一个标志位shop_status = 0print("您好,欢迎进入商品购物系统!")while True:if shop_status == 1:breakpage_num = input("您好,请输入需要查看的商品列表页码:\n")if page_num.isdecimal() and int(page_num) <= page_sum:page_num = int(page_num)#打印当前页的商品信息start = (page_num - 1)*10end = page_num * 10v1 = good_info_list[start:end]prompt_message = "编号"+"\t"+"单价"+"\t"+"商品名称"print(prompt_message.expandtabs(12))for index, value in enumerate(v1):line = str(index + 1) + "\t" + str(value["good_salary"]) + "\t" + value["good_name"]line = line.expandtabs(15)print(line)shop_mind = input("亲,是否将当前页的某件商品加入到购物车? yes or no ?\n")if shop_mind == "yes":id = int(input("请输入购买商品的编号:"))num = int(input("请输入相应商品的购买数量:"))good_info_dict = {"good_name": v1[id - 1]["good_name"],"good_salary": int(v1[id - 1]["good_salary"]),"good_num": num}shop_car_list.append(good_info_dict)print("当前购物车中含有的商品:")prompt_message = "单价" + "\t" + "购买数量" + "\t" + "商品名称"print(prompt_message.expandtabs(28))for item in shop_car_list:temp = str(item["good_salary"])+"\t"+str(item["good_num"])+"\t"+str(item["good_name"])print(temp.expandtabs(30))lable = input("是否继续在购买系统浏览商品 ? yes or no ?\n")if lable == "yes":continueelse:print("当前购物车中含有的商品:")prompt_message = "单价" + "\t" + "购买数量" + "\t" + "商品名称"print(prompt_message.expandtabs(28))for item in shop_car_list:temp = str(item["good_salary"]) + "\t" + str(item["good_num"]) + "\t" + str(item["good_name"])print(temp.expandtabs(30))#如果用户不想继续购买,则退出购买模式shop_status = 1else:passelse:print("对不起,请输入小于等于%d的页码!" % (int(page_sum)))log_status = 0
while log_count < 3:if log_status != 0:breakuser_name = input("请输入您的用户名:")user_pass_wd = input("请输入您的密码:")#先判断用户输入的用户名是否存在if user_name in user_info_dict.keys():#若用户的账户存在,在判断personal_account中用户的登录次数times是否已经到达了3次#user_name已经是字符串,则无需再加双引号if int(user_info_dict[user_name]["times"]) < 3:#在账号和times都符合条件的情况下,在判断用户的密码是否正确if user_info_dict[user_name]["pass_wd"] == user_pass_wd:print("您好,登录成功")#将用户登录的次数times此时要重置为0user_info_dict[user_name]["times"] = 0log_flag = 1while True:#登录成功之后,进入到第二个模块:功能选择user_choice = input("亲你好,请输入指定的序号选择对应的服务,输入q表示退出购物车系统:\n""1、查看之前的购物记录\n""2、购买商品\n""q、退出当前购物提供\n")if user_choice == "1":#通过函数查看之前的购物状态search_info()lable  = input("是否重新返回上一层目录? yes or no ")if lable == "yes":continueelse:exit(-1)   #此处可以是exit(-1)elif user_choice == "2":#进入购物车系统进行购物shop_trade()#随后调用支付函数,进行支付,这里我没有用到函数处理,后续是个改进的地方label = input("您好,是否进行支付 ? yes or no ?")if label == "yes":print("您当前的账户余额为:%s" % user_info_dict[user_name]["salary"])consume_sum = 0for item in shop_car_list:good_salary = item["good_salary"]good_num = item["good_num"]good_name = item["good_name"]consume_sum += int(good_salary) * int(good_num)print("购物车中的商品需要支付%d元" % consume_sum)salary = int(user_info_dict[user_name]["salary"]) - consume_sumif salary < 0:print("对不起,你当前账户的余额不足,差%d元" % salary)else:print("OK,支付成功,账户剩余额度为%d元" % salary)# 在列表中更新用户的账户余额user_info_dict[user_name]["salary"] = str(salary)lable = input("是否重新返回上一层目录? yes or no ")if lable == "yes":continueelse:print("欢迎再次光临!")log_status = 1  #退出整个购物系统  跳出第一个whilebreak   #跳出当前whileelse:print("亲,后期再见!")log_status = 1  # 退出整个购物系统  跳出第一个whilebreak  # 跳出当前whileelif user_choice == "q":print("欢迎光临购物车系统,期望下次再见!")log_status = 1  # 退出整个购物系统  跳出第一个whilebreak  # 跳出当前whileelse:print("您输入的信息有误,请重新输入!")else:print("对不起,您的密码输入有误.")#密码输入错误的时候登录尝试的次数也要加1user_info_dict[user_name]["times"] = str(int(user_info_dict[user_name]["times"])+1)log_count += 1else:print("对不起,您的账户已经锁定,请用其余的账号登录或者联系管理员进行解禁该账号")log_count += 1 #此时登录尝试次数加1else:print("对不起,您输入的用户账户不存在.")log_count += 1  #此时登录尝试次数加1#将用户购物车中的购物记录存储到文件shop_record中
fr4 = open("shop_record", "a", encoding="utf-8")
for item in shop_car_list:line = str(item["good_name"])+"|"+str(item["good_num"])+"|"+str(item["good_salary"])fr4.write(line+"\n")
fr4.close()#最后将用户最新的个人信息同步到personal_account文件中
fr5 = open("personal_account", "w")
j = 1
for key, item in user_info_dict.items():temp = key + "|" + item["pass_wd"] + "|" + str(item["times"])+"|" + str(item["salary"])if j != len(user_info_dict):fr5.write(temp + "\n")else:fr5.write(temp)j += 1

运行结果:

请输入您的用户名:Alex
请输入您的密码:1234567
对不起,您的密码输入有误.
请输入您的用户名:Alex
请输入您的密码:123123
您好,登录成功
亲你好,请输入指定的序号选择对应的服务,输入q表示退出购物车系统:
1、查看之前的购物记录
2、购买商品
q、退出当前购物提供
1
请输入相关的商品信息:旅游鞋
与其相关的购物记录:
镂空跑步鞋女透气网鞋运动鞋旅游鞋|1|69
亲,是否继续查看? yes or no ?
no
是否重新返回上一层目录? yes or no yes
亲你好,请输入指定的序号选择对应的服务,输入q表示退出购物车系统:
1、查看之前的购物记录
2、购买商品
q、退出当前购物提供
2
您好,欢迎进入商品购物系统!
您好,请输入需要查看的商品列表页码:
2
编号          单价          商品名称
1              59             谷崎女鞋2017夏季新款网面
2              69             镂空跑步鞋女透气网鞋运动鞋旅游鞋
3              62             个人帆布鞋女百搭学生韩版
4              38             小白鞋女春系带情侣平底板鞋女
5              89             2017春秋新款真皮英伦风松糕底女鞋
6              123            2017新款羊皮蛋卷鞋女真皮单鞋春夏
7              89             圆头百搭蝴蝶结平底鞋女秋
8              43             新款鱼嘴鞋
9              39             防水台女单鞋春夏百搭真皮高跟鞋
10             69             浅口粗跟单鞋女鞋子
亲,是否将当前页的某件商品加入到购物车? yes or no ?
yes
请输入购买商品的编号:2
请输入相应商品的购买数量:1
当前购物车中含有的商品:
单价                          购买数量                        商品名称
69                            1                             镂空跑步鞋女透气网鞋运动鞋旅游鞋
是否继续在购买系统浏览商品 ? yes or no ?
yes
您好,请输入需要查看的商品列表页码:
3
编号          单价          商品名称
1              69             懒人鞋春季女2017新款一脚蹬女鞋
2              89             百搭小白鞋韩版帆布鞋学生板鞋子
3              39             远步春季懒人低帮
4              126            黑色韩版帆布鞋
5              65             休闲单鞋女学生平底板鞋子学院潮
6              48             男生圆领五分袖男装半袖薄款青年体恤衫学生2017夏季
7              52             骆驼男装
8              49             夏季短袖t恤男纯色V领半袖打底衫男士青年T恤薄款短
9              38             拓路者短袖t恤
10             49             男夏纯棉白色半袖男圆领宽松体恤
亲,是否将当前页的某件商品加入到购物车? yes or no ?
yes
请输入购买商品的编号:2
请输入相应商品的购买数量:2
当前购物车中含有的商品:
单价                          购买数量                        商品名称
69                            1                             镂空跑步鞋女透气网鞋运动鞋旅游鞋
89                            2                             百搭小白鞋韩版帆布鞋学生板鞋子
是否继续在购买系统浏览商品 ? yes or no ?
no
当前购物车中含有的商品:
单价                          购买数量                        商品名称
69                            1                             镂空跑步鞋女透气网鞋运动鞋旅游鞋
89                            2                             百搭小白鞋韩版帆布鞋学生板鞋子
您好,是否进行支付 ? yes or no ?yes
您当前的账户余额为:1493
购物车中的商品需要支付247元
OK,支付成功,账户剩余额度为1246元
是否重新返回上一层目录? yes or no yes
亲你好,请输入指定的序号选择对应的服务,输入q表示退出购物车系统:
1、查看之前的购物记录
2、购买商品
q、退出当前购物提供
q
欢迎光临购物车,期望下次再见!Process finished with exit code 0

相关文件展示:(goods_information)

英爵伦男士短袖T恤|48
外套中老年人上衣|89
骆驼牌男装|88
男生新款潮流印花圆领半袖|69
2017新款男士夏季短袖t恤韩版|39
男生半袖夏装圆领体恤|42
春夏季田园印花小衫女新款|100
中年妇女装妈妈装棉短袖T恤|128
秋季中老年人女装|59
大码女装胖mm夏天短袖女士t恤|26
谷崎女鞋2017夏季新款网面|59
镂空跑步鞋女透气网鞋运动鞋旅游鞋|69
个人帆布鞋女百搭学生韩版|62
小白鞋女春系带情侣平底板鞋女|38
2017春秋新款真皮英伦风松糕底女鞋|89
2017新款羊皮蛋卷鞋女真皮单鞋春夏|123
圆头百搭蝴蝶结平底鞋女秋|89
新款鱼嘴鞋|43
防水台女单鞋春夏百搭真皮高跟鞋|39
浅口粗跟单鞋女鞋子|69
懒人鞋春季女2017新款一脚蹬女鞋|69
百搭小白鞋韩版帆布鞋学生板鞋子|89
远步春季懒人低帮|39
黑色韩版帆布鞋|126
休闲单鞋女学生平底板鞋子学院潮|65
男生圆领五分袖男装半袖薄款青年体恤衫学生2017夏季|48
骆驼男装|52
夏季短袖t恤男纯色V领半袖打底衫男士青年T恤薄款短|49
拓路者短袖t恤|38
男夏纯棉白色半袖男圆领宽松体恤|49
夏季加大码男装短袖T恤|52
V领打底衫半袖体恤|69
青少年学生t桖男上衣服|49

相关文件展示:shop_record

英爵伦男士短袖T恤|2|48
镂空跑步鞋女透气网鞋运动鞋旅游鞋|1|69
2017新款羊皮蛋卷鞋女真皮单鞋春夏|2|123
镂空跑步鞋女透气网鞋运动鞋旅游鞋|1|69
百搭小白鞋韩版帆布鞋学生板鞋子|2|89

相关文件展示:personal_account

Eric|123123|0|1500
Alex|123123|0|1246

Python购物车系统模拟1相关推荐

  1. python购物车程序2019_Python实现购物车程序

    本文实例为大家分享了程序:Python购物车程序,具体内容如下 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就 ...

  2. Python购物车案例(改善)

    内容包含 主要是对python函数之前的一个复习整合和综合利用. 1.通过创建和维护Python购物车程序实验,验证字符串.列表.字典.元组以及集合等对象的使用方法. 2.加深对Python基本数据类 ...

  3. python购物车程序2019_Python——购物车程序(列表的应用)

    购物车基本功能: 1.展示购物清单.价格信息. 2.由客户选择商品序号.加入购物车. 3.结束购物后,展示购物车中的商品信息,余额信息. 其他规则:所选商品价格超出当前余额时,提示钱不够: 直到客户输 ...

  4. Python 购物车

    购物车需求: 可购买的商品信息显示 显示购物车内的商品信息.数量 购物车内的商品数量进行增加.减少 用户余额的充值 用户购买完成进行结账,将最终余额回写到用户文件中 流程图: 代码: 1.主文件 de ...

  5. python购物车典例_Python入门:购物车实例

    product_list=[('iphone',5800), ('pro',120000), ('python book',120), ('Bike',800), ('coffe',39) ] #定义 ...

  6. python 购物车程序_python_购物车程序

    #需求1.启动程序后,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时退出,退出时,打印已购买商品和余额 # ...

  7. python购物车典例_Python实现的购物车功能示例

    本文实例讲述了Python实现的购物车功能.分享给大家供大家参考,具体如下: 这里尝试用python实现简单的购物车程序... 基本要求: 用户输入工资,然后打印购物菜单 用户可以不断的购买商品,直到 ...

  8. python 购物车程序_购物车程序python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 第3点要求: 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒在循环外层 ...

  9. python购物车_python购物车功能

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! print(商城货物暂时短缺,请输入正确的商品序号)elifgong_neng= ...

  10. python购物车代码_python简单商城购物车实例代码

    本文为大家分享一个简单商城购物车的python代码,供大家参考,具体内容如下 要求: 1.写一段商城程购物车序的代码 2.用列表把商城的商品清单存储下来,存到列表 shopping_mail 3.购物 ...

最新文章

  1. TCP数据流稳定性--TCP分片,重组及乱序
  2. linux64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32
  3. js事件之event.preventDefault()与event.stopPropagation()用法区别
  4. .NET Core + Ocelot:API 网关
  5. Linux 系统下载和安装 rarlinux
  6. Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash)
  7. python界面开发webview_python在webview和activity混合页面下怎么定位
  8. iPhone 14进入代工试产阶段:首款打孔屏iPhone要来了
  9. Embedding 技术在推荐系统中的应用实践
  10. 类型约束的本质:泛型是不完备类型,只有合乎要求的构造才能正确使用和访问。...
  11. python 优先队列_Python Queue队列实现线程通信
  12. 微信小游戏飞机大战Cocos Creator+TypeScript
  13. linux sz命令 二进制,ubuntu下rz/sz命令的安装与使用说明
  14. 开发人员使用Helix QAC满足合规性的5大原因
  15. MySQL复制表数据到新表的方法
  16. alc662声卡注入id_ALC662声卡Linux提取文件.doc
  17. DevOps—持续部署Ansible(二)
  18. html5-canvas常用的api介绍
  19. 黑胶音乐和CD音乐有什么区别?
  20. grasshopper python可以做什么_Grasshopper 有哪些奇技淫巧?

热门文章

  1. java自动机字符串匹配_【算法】利用有限自动机进行字符串匹配
  2. 查看连打印机的计算机名,查看局域网打印机ip地址的方法步骤
  3. 计算机程序有哪些性质,程序的特性有哪些
  4. 用python实现词频分析+词云
  5. 小麦积分墙:如何更好的使用积分墙
  6. VS2019 配色_OPPO Enco M31颜值太顶了,斩获 A'设计大奖赛金奖,引领时尚潮流|oppo|大奖赛|无线耳机|配色|时尚|卡特...
  7. R语言保存EXCEL小技巧
  8. 谷歌浏览器一直无法上网,其他浏览器可以正常上网
  9. sql问题导致CPU使用率100%
  10. Cf#595 (Div. 3)E-DP题