设计一个系统
py文件
"""
1.持久化的数据:所有已经注册过的账号
2.设计文件:files/userInfo.txt
方案1:{用户名1: 密码1, 用户名2: 密码2,...}
方法2:[{'username': 用户名1, 'pw': 密码1}, {'username':用户名2, 'pw': 密码2}, ....]
"""
def read_file(file_path):
try:
with open(file_path, 'r', encoding='utf-8') as f:
return f.read()
except FileNotFoundError:
return None
def register():
# 1. 提示用户输入账号和密码
username = input('请输入账号:')
password = input('请输入密码:')
# 2. 判断账号是否已经注册过
# 1)获取所有已经注册过的账号
result = read_file('files1/userInfo.txt')
if result:
all_user = eval(result)
else:
all_user = []
# 2)判断输入账号是否在已经注册过的账号中
for user in all_user:
if user['username'] == username:
print('注册失败!该账号已存在!')
return
# 3. 完成注册
all_user.append({'username': username, 'pw': password})
with open('files1/userInfo.txt', 'w', encoding='utf-8') as f:
f.write(str(all_user))
print('注册成功!')
def login():
# 1. 输入账号和密码
username = input('请输入账号:')
password = input('请输入密码:')
# 2. 判断是否登录成功
# 1)获取已经注册过的用户信息
result = read_file('files1/userInfo.txt')
if not result:
print('登录失败!该账号不存在!')
return False
# 2)判断用户名是否已经注册并且输入的密码和保存密码是否一致
all_user = eval(result)
for user in all_user:
if user['username'] == username:
if user['pw'] == password:
print('登录成功!')
return True
else:
print('登录失败!密码错误!')
return False
print('登录失败!该账号不存在!')
return False
def main_page():
page = read_file('files1/mainPage.txt')
while True:
# 1. 打印主页内容
print(page)
# 2. 给出选择
value = input('请选择(1~3):')
# 3. 根据不同的选择程序做出不同的反应
if value == '1':
result = login()
if result:
break
elif value == '2':
register()
else:
exit() # 退出程序
# return
print(read_file('files1/succeed.txt'))
if __name__ == '__main__':
main_page()
mainpage.txt
===============================================
++ 欢迎来到XXX用户登录系统 ++
♥ 1. 登 录
♥ 2. 注 册
♥ 3. 退 出
===============================================
succeed.txt
-----------------登录成功--------------------
个人作业
s1 = '=' * 50
s2 = '**欢迎来到xxx管理系统**'
s3 = '* 1. 登 录 '
s4 = '* 2. 注 册 '
s5 = '* 3. 退 出 '
print(s1.center(50, ' '))
print(s2.center(50, ' '))
print(s3.center(50, ' '))
print(s4.center(50, ' '))
print(s5.center(50, ' '))
print(s1.center(50, ' '))
choice1 = int(input('请选择(1~3):'))
while True:
if choice1 == 1:
dict1 = {'Account_number': input('请输入账号:'), 'password': int(input('请输入密码:'))}
try:
with open('files1/系统信息.txt', encoding='utf-8') as f:
all_count = eval(f.read())
except (FileNotFoundError, NameError, SyntaxError):
all_count = []
if dict1 not in all_count:
for x in all_count:
if dict1['Account_number'] == x['Account_number']:
print('登录失败!密码错误')
exit()
else:
print('登录失败!账号不存在')
break
else:
print('登录成功!')
break
elif choice1 == 2:
dict1 = {'Account_number': input('请输账号:'), 'password': int(input('请输入密码:'))}
try:
f = open('files1/系统信息.txt', encoding='utf-8')
all_count = eval(f.read())
f.close()
for x in all_count:
if dict1['Account_number'] == x['Account_number']:
print('注册失败,账号已存在')
exit()
else:
all_count.append(dict1)
# print(all_count)
f = open('files1/系统信息.txt', 'w', encoding='utf-8')
f.write(str(all_count))
print('注册成功')
break
except (FileNotFoundError, NameError, SyntaxError):
all_count = []
all_count.append(dict1)
# print(all_count)
f = open('files1/系统信息.txt', 'w', encoding='utf-8')
f.write(str(all_count))
print('注册成功')
break
elif choice1 == 3:
print('退出系统')
break
else:
choice1 = int(input('请重新选择(1~3):'))