初级购物车
1.用户信息由user.info文件存放,内容格式:abc | 123 | 0, qwe | 123 | 1000
账号 | 密码 | 余额, 账号 | 密码 | 余额
2.实现登录,注册,注销,购物,充值,退出系统六个功能
3.注册可以完成用户的注册,注册时要提供账号密码,初始财产余额为0
1)注册先输入账号,要对账号做
输入的是否为空、输入的账号是否已经存在两种判断,都通过进入输入密码,否则重新输入
2)输入密码,要对密码长度最短为3位的限制,长度3位或以上代表合法,可以完成注册
3)注册是将账号密码写入文件,财产余额初始为0,
第一次写入格式:账号 | 密码 | 余额
再次写入格式:, 账号 | 密码 | 余额
4.用户登录状态需要保存,在程序运行的py文件最上方定义一个user字典,字典为空代表未登录,为
{‘usr’: 账号, ‘ps’: 密码, ‘money’: 余额}
代表登录,记录的就是当前登录的用户
5.完成用户登录
1)解析user.info文件,将用户信息存放到users_dic字典中,格式见下,解析的过程可以定义为方法,
{
‘abc’: {‘ps’: ‘123’, ‘money’: 0},
‘qwe’: {‘ps’: ‘000’, ‘money’: 1000}
}
2)判断用户是否登录了,如果登录了就提示不需要重复登录,未登录就可以往下走,完成登录
3)先输入账号,账号为空、不存在都会验证失败,继续输入,3
次失败后就可以进入注册功能,验证通过进行玩下
4)再输入密码,密码必须超过3位,3
次登录失败退出登录,成功的记录登录的用户信息到user字典,表示已登录
6.用户注销,就是清楚登录状态,将存放登录用户信息的user字典制空user = {}
7.用购物功能完成购物,
1)必须在登录状态,未登录时,进入登录页面,已登录则可以购物
2)预定义一些商品与价格,每一次完成购物后,提示用户是否继续进行购物
3)如果余额不足则进入充值功能
8.充值功能
1)必须在登录状态才可以操作
2)充值后的金额数据要同步到user.info文件,user字段和user_dic字典中
9.退出系统,将退出系统,但注册的用户和余额都保存在文件中
import os
user = {}
def auth_user(*args):
'''
当args参数个数为0时,只取用户信息
当args参数个数为1时,只取验证用户名是否合法,重复
当args参数个数为2时,只取验证密码是否对应
:param args: 参数列表
:return: 返回用户信息或判断结果
'''
user_dic = {}
with open('user.info', 'r', encoding='utf-8') as r:
res = r.read().rstrip()
for item in res.split(','):
if item:
item_list = item.split('|')
name, password, money = item_list
user_dic[name] = [password, money]
if len(args) == 0: # 只取用户信息
return user_dic
if len(args) == 1: # 验证用户名逻辑
name = args[0]
if name in user_dic:
return True # 用户名存在
return False
if len(args) == 2: # 验证密码逻辑
user, password = args
if user_dic[user][0] == password:
return True
return False
def auth_password(password):
'''
验证密码长度是否大于3
:param password:
:return:bool
'''
if len(password) > 3:
return True
return False
def register():
'''
用户注册
:return:
'''
while True:
name = input("请输入注册用户名(不能为空): ")
if not auth_user(name) and name: # 用户名验证通过
password = input("请输入密码: ")
if auth_password(password):
with open('user.info', 'a', encoding='utf-8') as a: # 内容格式:abc | 123 | 0, qwe | 123 | 1000
a.write(name + '|' + password + '|' + '0' + ',') # 刚注册余额为0
return
else:
print("密码长度至少3位,请重新输入")
else:
print("用户名验证不通过,请更换别的用户名")
continue
def login():
'''
用户登录
:return:bool
'''
if user:
print("用户已登录")
return 1
i = 0
while i < 3:
username = input("请输入登录的用户名: ")
if username in user:
print("用户已登录")
return
if auth_user(username) and username:
password = input("请输入对应的密码: ")
if password and auth_user(username, password) and auth_password(password):
user_dic = auth_user()
money = user_dic[username][1]
user[username] = {'ps': password, 'money': money}
print("登录成功")
return True
print("验证失败")
i += 1
else:
print("请重新注册")
return False
def logout():
'''
清除登录状态
:return:
'''
global user
user = {}
print("