user_list = []
user_login = {}
shopping_car = []
def write_users_to_file():
f = open('payment.txt','w', encoding='utf-8')
for user in user_list:
f.write(user['name'])
f.write('|')
f.write(user['password'])
f.write('|')
f.write(user['money'])
if 'locktime' in user:
f.write('|')
f.write(user['locktime'])
f.write(',')
f.close()
def read_all_user():
if user_list:
return
with open('payment.txt', 'rt', encoding='utf-8')as f: # rt以文本方式只读
text = f.read()
if not text:
return
texts = text.split(',')
for i in texts:
temp = i.split('|')
# print(temp)
d_dic = {}
d_dic['name'] = temp[0]
d_dic['password'] = temp[1]
d_dic['money'] = temp[2]
user_list.append(d_dic)
def user_exist(name):
for user in user_list:
if user['name'] == name:
return True
return False
def write_user(name, password):
with open('payment.txt', 'a+', encoding='utf-8')as f:
old = ',%s|%s|0' % (name, password)
f.write(old)
def register():
while True:
name = input('请输入用户名:').strip()
password = input('请输入密码:').strip()
if name and password:
print('ok')
if user_exist(name):
print('用户名已存在')
continue
else:
print('可以注册')
if len(password) < 6:
print('密码不能少于6位')
continue
else:
print('注册成功')
write_user(name, password)
# 手动添加新用户
user_list.append({'name': name, 'pwd': password, 'money': '0'})
return
else:
print('用户名或密码不能为空')
# register()
error_dic = {}
import time
def lock_user(username):
for user in user_list:
if user['name'] == username:
# 写入时间
user['locktime'] = str(time.time())
print(username+'被锁定')
# print(user_list)
write_users_to_file()
def login(): # 登陆功能
while True:
name = input('输入用户名,输入0返回上层:')
if name == '0':
return
flag = False
for user in user_list:
if user['name'] == name:
flag = True
break
else:
print('用户不存在,请先注册')
continue
password = input('输入密码:')
for user in user_list:
if user['name'] == name and user['password'] == password:
print('登陆成功,欢迎%s' % name)
user_login['name'] = name
user_login['password'] = password
user_login['money'] = user['money']
user_login['shopping_car'] = shopping_car
return True
print('用户名或密码不正确 请重新输入')
# 存入错误次数
if name not in error_dic:
error_dic[name] = 1
else:
error_dic[name] += 1
num = error_dic[name]
print('剩余尝试次数%d' % (3-num))
if num == 3:
lock_user(name)
def shopping():
if not user_login:
print('请先注册或登陆')
return
while True:
shoping = [['1', 'coco', 10],
['2', '1点点', 20],
['3', 'ysl', 252]]
for i in shoping:
print('商品号{},{}:{}'.format(i[0], i[1], i[2]))
num = input('请输入您要购买的商品序号或物品名(输入0退出):')
if num == '0':
print(shopping_car)
return
for i in shoping:
if num not in i:
continue
else:
user_login['shopping_car'].append(i)
def show_shopping_car(): # 查看 购物车
if not user_login:
print('请先注册或登陆')
return
print(user_login['shopping_car'])
def account_info(): # 查看 账户信息
if not user_login:
print('请先注册或登陆')
return
print('账号:{}\n密码:{}'.format(user_login['name'], user_login['password']))
def add_money(): # 充值
if not user_login:
print('请先注册或登陆')
return
add_money = int(input('请输入充值金额:'))
user_login['money'] = int(user_login['money'])+add_money
print('账户余额%s' % user_login['money'])
method_dic = {'1': register,
'2': login,
'3': shopping,
'4': show_shopping_car,
'5': account_info,
'6': add_money}
# 作为程序的入口
def main():
read_all_user()
while True:
print('''
欢迎使用x宝商城 请选择
1:注册
2:登陆
3:购物
4:购物车
5:账户信息
6:账户充值
0:退出
''')
choice = input('请输入执行的功能:').strip()
if choice == '0':
return
if choice not in method_dic:
print('输入有误,请重新输入:')
continue
method_dic[choice]()
main()
09-28
09-28