博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
购物车--用户和商户入口
阅读量:5501 次
发布时间:2019-06-16

本文共 9589 字,大约阅读时间需要 31 分钟。

''' 此模块需要使用用户登陆模块代码 用户入口: 1、输入用户名和密码 2、商品信息存在文件里 3、已购商品和余额记录在文件里 注:用户购买商品后退出,再次登陆会自动读取上次用户的余额 商户入口: 1、添加商品 2、修改商品名称和价格 3、删除商品 备注:需要新建shop文件和购物车文件,其中shop文件保存商品信息: '''
import os import userLogin import types def read_info(_name):     if os.path.getsize("购物车"):         remaining = 0         with open("购物车","r",encoding="utf-8") as f:             for line in f:                 if line.strip() == "":                     continue                 line = eval(line)                 if line["name"] == _name:                     remaining = line["shopping"][2]                     if remaining > line["shopping"][2]:                         remaining = line["shopping"][2]             if remaining == 0:                 return None             else:                 return remaining     else:         return None def memu(num):     if os.path.getsize("shop"):         with open("shop","r",encoding="utf-8") as f:             print("------------商品------------")             for index,line in enumerate(f):                 if line.strip() == "":                     continue                     index -= 1                 line = eval(line)                 info2 = '''       {_index}、{_goods},价格:{_price}                 '''.format(_index = index + 1,                            _goods = line["goods"],                            _price = line["price"])                 print(info2)     else:         print("当前无商品")         if num == 1:             exit() def shopping_list(name):     sum = 0     flag = 0     with open("购物车", "r+", encoding="utf-8") as f:         for temp in f:             if temp.strip() == "":                 continue             temp = eval(temp)             if temp["name"] == name:                 sum += temp["shopping"][1]                 info2 = ''' 商品:{_goods},价格:{_price}             '''.format(_goods=temp["shopping"][0],                        _price=temp["shopping"][1])                 if flag == 0:                     print("---------购物清单---------")                 print(info2)                 flag = 1         print("总计金额:         %d" % sum) def user(_momey,name):     choose = input("输入你要购买商品的编号 >>>:")     if choose.isdigit():         choose = int(choose)     elif choose == 'q':         shopping_list(name)         exit()     else:         print("输入错误")     res = read_info(name)     if res != None:         _momey = res     f = open("shop", "r", encoding="utf-8")     content = f.readlines()     for i in range(len(content)):         if choose - 1 == i:             content[i] = eval(content[i])             surplus = _momey - content[i]["price"]             if surplus >= 0:                 _momey = surplus                 print("\033[33;1m %s \033[0m 已加入购物车,你的当前余额为:\033[32;1m %d \033[0m "%(content[i]["goods"],_momey))                 save(content[i],name,_momey)                 return _momey             else:                 print("\033[31;1m 你的余额不足,当前余额为:%d \033[0m"%_momey)                 return _momey     f.close() def save(d,name,momey):     dict = {}     dict["name"] = name     dict["shopping"] = [d["goods"],d["price"],momey]     with open("购物车","a+",encoding="utf-8") as f:         f.write(str(dict) + '\n') def deposit(name):     while True:         res = read_info(name)         if res == None:             momey = input("输入你的存款金额 >>>:")         else:             momey = res             print("\033[34;1m %s你好,你的当前余额是:%d \033[0m"%(name,momey))             return momey         if type(momey) != type(1):             if momey.isdigit():                 momey = int(momey)                 return momey             elif momey == 'q':                 exit()             else:                 print("存款输入错误")                 continue def add_shop():     with open("shop","a+",encoding="utf-8") as f:         dict = {}         goods = input("输入你要添加的商品名称 >>>")         price = input("输入商品的价格(正整数) >>>")         if price.isdigit():             price = int(price)         dict["goods"] = goods         dict["price"] = price         f.write(str(dict) +'\n')     print("\033[31;1m 添加商品成功 \033[0m") def modify_shop():     list = []     f = open("shop", "r+", encoding="utf-8")     content = f.readlines()     num = input("请输入你要修改的商品编号 >>>")     if num.isdigit():         num = int(num)     else:         print("输入错误")     for i in range(len(content)):         if num - 1 == i:             content[i] = eval(content[i])             choose = input("请输入你要修改商品的信息1、名称,2、价格 >>>")             if choose.isdigit():                 choose = int(choose)             else:                 print("输入错误")             if choose == 1:                 goods = input("请输入修改后的商品名称 >>>")                 content[i]["goods"] = goods             elif choose == 2:                 price = input("请输入修改后的商品价格 >>>")                 if price.isdigit():                     price = int(price)                 content[i]["price"] = price             else:                 print("输入错误")         list.append(content[i])     f.truncate(0)     f.close()     with open("shop", "a+", encoding="utf-8") as f1:         for temp in list:             f1.write(str(temp))     print("\033[31;1m 修改商品成功 \033[0m") def del_shop():     list = []     f = open("shop", "r+", encoding="utf-8")     content = f.readlines()     num = input("请输入你要删除的商品编号 >>>")     if num.isdigit():         num = int(num)     else:         print("输入错误")     for i in range(len(content)):         if num - 1 == i:             continue         list.append(content[i])     f.truncate(0)     f.close()     with open("shop", "a+", encoding="utf-8") as f1:         for temp in list:             f1.write(temp)     print("\033[31;1m 删除商品成功 \033[0m") def main1(name):     res = input("请输入你的选择:1、用户,2、商户 >>>")     if res.isdigit():         res = int(res)         if res == 1:             momey = deposit(name)             while True:                 memu(res)                 momey = user(momey,name)         elif res == 2:             while True:                 memu(res)                 res1 = input("请输入你的选择:1、添加,2、修改,3、删除 >>>")                 if res1.isdigit():                     res1 = int(res1)                     if res1 == 1:                         add_shop()                     elif res1 == 2:                         modify_shop()                     elif res1 == 3:                         del_shop()                     else:                         print("输入错误")                 elif res1 == 'q':                     exit()         else:             print("输入错误")     elif res == 'q':         exit()     else:         print("输入错误") if __name__ == "__main__":     while True:         userLogin.main()
''' -------用户登陆模块代码------ '''
''' 先创建user、lock文件,user存储账号密码,用于登录时判断,lock文件为账号错误3次后,冻结 user内容格式为: {'name':'zhangsan','passwd':'123'} {'name':'lisi','passwd':'123'} {'name':'wangwu','passwd':'123'} ''' import os import shopping def lock(_name):     '''判断一个用户是否冻结'''     if os.path.getsize("lock"):         with open("lock","r") as f:             for line in f:                 if line.strip() == "":                     continue                 line = eval(line)                 if line["name"] == _name and line["num"] == 3:                     return 0             else:                 return -1     else:         return -1 def clear_lock():     '''当程序退出时,删除非冻结的账号信息'''     list = []     with open("lock","r+") as f:         for line in f:             if line.strip() == "":                 continue             line = eval(line)             if line["num"] == 3:                 list.append(line)         f.truncate(0)     with open("lock","w") as f1:         for i in list:             f1.write(str(i) + '\n') def login(_name,_passwd):     '''用户登陆'''     with open("user","r") as f:         flag = 0         for line in f:             if line.strip() == "":                 continue             line = eval(line)             if line["name"] == _name:                 if line["name"] == _name and line["passwd"] == _passwd:                     return 0                 else:                     return 1         return -1 def write_lock(_name):     '''将输入错误的账号写入lock文件'''     #文件不为空     if os.path.getsize("lock"):         list = []         with open("lock","r+") as f:             flag = 0             for line in f:                 if line.strip() == "":                     continue                 line = eval(line)                 #判断账号是否存在                 if line["name"] == _name:                     line["num"] += 1                 list.append(line)             else:                 dict2 = {}                 dict2["name"] = _name                 dict2["num"] = 1                 list.append(dict2)         with open("lock","w") as f1:             for i in list:                 f1.write(str(i) + '\n')     #空文件直接写入     else:         list1 = []         dict1 = {}         dict1["name"] = _name         dict1["num"] = 1         list1.append(str(dict1))         with open("lock","w") as f2:             for j in list1:                 f2.write(str(j) + '\n') def main():     name = input("用户名:")     res = lock(name)     if res == 0:         print("%s已被冻结,请联系管理员"%name)         clear_lock()         exit()     passwd = input("密码:")     res1 = login(name,passwd)     if res1 == 0:         print("欢迎%s登陆CBD购物中心"%name)         while True:             shopping.main1(name)     elif res1 == 1:         print("密码错误")         write_lock(name)     else:         print("账号不存在")     res2 = lock(name)     if res2 == 0:         print("%s已被冻结,请联系管理员" %name)         clear_lock()         exit() if __name__ == "__main__":     while True:         main()

转载于:https://www.cnblogs.com/hqd2008/p/7639971.html

你可能感兴趣的文章
Redis List数据类型
查看>>
android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹的解决办法
查看>>
sql server(常用)
查看>>
大数据项目实践(四)——之Hive配置
查看>>
Thread类源码解读(1)——如何创建和启动线程
查看>>
Bootstrap清除浮动的实现原理
查看>>
初学vue2.0-组件-文档理解笔记v1.0
查看>>
NG-ZORRO-MOBILE 0.11.9 发布,基于 Angular 7 的 UI 组件
查看>>
我就是一个救火员(DBA救援)
查看>>
Centos7安装Gitlab10.0
查看>>
Windows Server 笔记(六):Active Directory域服务:域控制器安装
查看>>
FTP传输文件(hcl模拟器的操作)
查看>>
discuz X3登录流程分析
查看>>
javascript事件响应
查看>>
通过script标签实现JSONP跨域调用
查看>>
用jQuery实现Ajax
查看>>
***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权
查看>>
上传图片预览
查看>>
vim编辑器
查看>>
程序设计的一些原理
查看>>