题目:
补充完整下面的代码,登陆部分
# 制作一个注册登录模块 # 注册:将用户填入的账户和密码保存到一个文件(users.bin) # 登陆:将用户填入账户密码和users.bin中保存的账户密码进行比对,如果账户和密码完全相同 那么登录成功,否则登录失败 import hashlib import json import os import sys # user interface 用户是界面 UI = """ 用户登录系统 1.注册 2.登陆 0.退出 """ # 读取users.bin def load(path): return json.load(open(path, "rt")) # 保存user.bin def save(dic, path: str): json.dump(dic, open(path, "wt")) while True: print(UI) num = input("请输入你的选择:") if num == "1": # 从users.bin读取已有的账户数据,用户注册完以后,将新账户增添到已有数据中保存。 if os.path.exists("users.bin"): dc = load("users.bin") else: dc = {} account = input("请输入账户:") passwd = input("请输入密码:") confirm = input("请确认密码") # 检查用户的账户是否已存在 如果存在 则提醒用户重新输入账户密码 if dc.get(account): print("账户已存在请重新输入") # 前后两次密码 是否一致?如果一致直接保存用户的注册信息 elif passwd == confirm: # 使用MD5将用户密码假面 md5 = hashlib.md5(passwd.encode()) encrypt = md5.hexdigest() dc[account] = encrypt save(dc, "users.bin") print("注册成功") elif num == "2": print("进入到登录环节") # 输入账户密码 # 读取users.bin得到一个字典 # dc.get判断用户的账户是否存在 # dc[account] == 输入的密码 # 登录成功 否则登录时失败 else: sys.exit()
成品:
代码:
# 制作一个注册登录模块 # 注册:将用户填入的账户和密码保存到一个文件(users.bin) # 登陆:将用户填入账户密码和users.bin中保存的账户密码进行比对,如果账户和密码完全相同 那么登录成功,否则登录失败 import hashlib import json import os import sys # user interface 用户是界面 UI = """ 用户登录系统 1.注册 2.登陆 0.退出 """ # 读取users.bin def load(path): return json.load(open(path, "rt")) # 保存user.bin def save(dic, path: str): json.dump(dic, open(path, "wt")) while True: input("按回车继续...") print(UI) num = input("请输入你的选择:") if num == "1": # 从users.bin读取已有的账户数据,用户注册完以后,将新账户增添到已有数据中保存。 if os.path.exists("users.bin"): dc = load("users.bin") else: dc = {} account = input("请输入账户:") passwd = input("请输入密码:") confirm = input("请确认密码") # 检查用户的账户是否已存在 如果存在 则提醒用户重新输入账户密码 if dc.get(account): print("账户已存在请重新输入") # 前后两次密码 是否一致?如果一致直接保存用户的注册信息 elif passwd == confirm: # 使用MD5将用户密码加密 md5 = hashlib.md5(passwd.encode()) encrypt = md5.hexdigest() dc[account] = encrypt save(dc, "users.bin") print("注册成功") elif num == "2": print("进入到登录环节") # 输入账户密码 account = input("请输入账户:") pwd = input("请输入密码:") # 加密输入的密码 md5 = hashlib.md5(pwd.encode()) encrypt_pwd = md5.hexdigest() # 读取users.bin得到一个字典 dc = load("users.bin") # dc.get判断用户的账户是否存在 if dc.get(account): # dc[account] == 输入的密码 # 登录成功否则登录时失败 if dc[account] == encrypt_pwd: print("登陆成功") else: print("账户或密码错误") else: print("账户或密码错误") else: sys.exit()
结果: