作业需求:
函数一:实现三次登陆功能
登录的用户名,密码必须从文件中取出。
实现三次登录。
函数二:实现新用户注册功能
用户写入用户名,密码。
检测:用户名不能重复。
函数三:购物功能
将购物车加工成函数。
加一个功能:
将买的商品写入到一个文件中,商品名,数量,单价。
功能实现:
1、实现三次登录失败锁定账户
2、实现 登录时用户名不能重复,如果重复提示账户已经存在
3、商品未登录不能进行购买
4、商品进行购买,价格不够可以进行充值
5、即将商品购买人的姓名:商品名:单价:总价:余额:写入到shopping.txt 文件
扫描二维码关注公众号,回复:
1010843 查看本文章
作业:
import json goods = [{"name": "电脑", "price": 2000}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price":998 } ] shop_list=[] #购物车清单列表 def register (): #注册功能 with open('user.json', mode='r', encoding='utf-8') as f1: data_r = f1.readline() dic_r = json.loads(data_r) f1.close() while True: user=input("请输入您要注册的账户:") pwd=input("请输入你要注册的账户密码:") if user in dic_r['username']: print("您注册的账户已经存在请重新输入") continue else: with open('user.json', mode='a', encoding='utf-8') as f1: register_list={} register_list['username'] = user register_list['password'] = pwd f1.write(json.dumps(register_list)) f1.write('\n') print("恭喜你注册成功,可以进行登录并进行购物:") break login() def chongzhi (Assets): # 充值功能 # global Assets chongzhi_money=input("请输入你要充值的金额:") chongzhi_money=int(chongzhi_money) Assets = Assets + chongzhi_money print("您要充值的金额为:%s " %(Assets) ) print("您的总月为:%s" %(Assets) ) return Assets def login (): #登录功能 flag = False count = 0 with open('user.json', mode='r', encoding='utf-8') as f1: data_r = f1.readlines() while True: global user userlist = {} user = input("请输入用户名:") pwd = input("请输入密码:") for i in data_r: i=eval(i) if i['username'] == user and i['password'] == pwd: flag = True else: pass if flag: print("登录成功,请选择商品进行购买") break else: print("登录失败,请重新登录") count += 1 if count == 3: print('您输入的用户密码错误超过3次,已经被锁定,程序已经退出') with open('lock.json', mode='a', encoding='utf-8') as f2: userlist['username'] = user userlist['password'] = pwd f2.write(json.dumps(userlist)) f2.write('\n') exit() def shopping (Assets): #购物车功能 balance = 0 ret = 0 Assets=input("请输入你的资产总资产:").strip() Assets=int(Assets) print("您的总资产为%s:" %(Assets)) while True: for index,item_name in enumerate(goods): print(index,item_name) number=input("请输入你要购买的商品序列号:").strip() # nubmer 代表的是商品的索引,也就是序列号 if number.isdigit(): number=int(number) # 将输入的序号初始化为数字 if number < len(goods) and number >= 0: p_item=goods[number] # 读取下表元素 shop_list.append(p_item) # 将商品添加到购物车列表 print(shop_list) shop_value=input("请输入 yes/no 继续购买或者结算:").strip() #输入yes/no 继续购买 if shop_value == 'yes': pass elif shop_value == 'no': print("您购买的商品列表为:%s" %(shop_list)) for list in shop_list: #对购买的商品进行价格核算 ret = ret + list['price'] SY_money=Assets - ret #余额 if Assets - ret >=0: #余额判断,如果小于0元进入到充值界面 print('您的余额为:%s 购买完毕已退出' % SY_money) with open('shopping.txt',mode='a',encoding='utf-8') as f4: f4.write('您的账户:%s \n' %(user)) f4.write('购买上商品:%r \n' %(shop_list)) f4.write('剩余余额:%r \n' %(SY_money)) exit() else : goumai=input('余额不足请输入:yes进行充值/no 停止进行购买:') if goumai == 'yes': Assets=chongzhi(Assets) elif goumai == 'no': print('余额不足停止购买操作') exit() if __name__ == "__main__": Assets=int(0) # Assets=int(Assets) while True: print( ''' 1.注册 2.登录 3.购物车。 ''' ) first_nmuber=input("请输入号码您要选择的号码:") if first_nmuber.isdigit(): first_nmuber=int(first_nmuber) if first_nmuber == 1: register() elif first_nmuber == 2 or first_nmuber == 3: login() shopping(Assets) else: print("您输入的功能不再此清单内,请重新输入") continue