Python实现用户登录注册验证功能详解
本文通过Python基础语法实现登录注册验证功能,涵盖函数定义、条件判断、循环结构及文件IO操作。详细解析登录与注册的业务流程,重点讲解try-except异常处理在文件读取中的应用,并展示完整代码实现,帮助初学者掌握用户信息存储与校验的核心技术。
简介
本次项目是对前期所学Python知识点的综合应用与深化练习。项目核心涉及的知识点包括函数定义与调用、条件判断语句、循环控制语句以及文件读写操作等基础内容。
项目流程
程序启动后,首先向用户输出操作菜单,提供登录或注册的功能选项供用户选择。
若用户选择登录功能,需输入用户名和密码。系统会检查该用户信息是否已注册:若未注册,则提示登录失败;若已注册且信息匹配,则提示登录成功。
若用户选择注册功能,需输入用户名和密码。系统会检查该用户名是否已存在:若用户名未注册,则提示注册成功;若用户名已存在,则提示用户名重复,注册失败。
代码流程
程序运行后,首先执行main()主函数。main()函数接收用户输入的用户名和密码,并根据用户选择执行不同逻辑:若选择登录,则调用login()函数,将用户输入信息与存储用户信息的文件数据进行比对,存在匹配信息则登录成功,否则失败;若选择注册,在接收输入后调用register()函数,并在此过程中调用user_exist()函数判断用户信息是否存在。若文件中已存在该用户信息,则输出注册失败;否则执行注册操作并输出成功。
在login()和user_exist()函数的实现中,均调用了错误处理机制以应对文件操作可能出现的异常。
错误处理函数介绍
try: ..... except IOError: ......
当try代码块中的语句执行未出现错误时,程序跳过except代码块;若try代码块中发生错误(如文件读取异常),则执行except代码块中的处理逻辑。
代码实现
def login(username, password):
"""
用于用户名和密码的验证
:param username:用户名
:param paaword:密码
:return:True,用户验证成功;False,用户验证失败
"""
try:
f = open("users", "r", encoding="utf-8")
for line in f:
line = line.strip() # 清除换行符
# 无参数时移除两侧空格,换行符
# 有参数时移除两侧指定的字符
line_list = line.split("$")
if line_list[0] == username and line_list[1] == password:
# print("成功")
return True
return False
except IOError:
return False
def register(username, password):
"""
注册用户
1、打开文件
2、用户名$密码
:param username:用户名
:param password:密码
:return:True:注册成功;
"""
with open("users", "a", encoding="utf-8") as f:
temp = "\n" + username + "$" + password
f.write(temp)
return True
def user_exist(username):
"""
检测用户名是否存在
:param username:要检测的用户名
:return: True:用户名存在;False:用户名不存在
"""
# 一行一行的去查找,如果用户名存在,return True:False
try:
with open("users", "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
line_new = line.split("$")
if line_new[0] == username:
return True
return False
except IOError:
return False
def main():
while True:
print("欢迎登录xxx系统")
arg = input("1:登录,2:注册")
if arg == "1":
uer = input("请输入用户名:")
pwd = input("请输入密码:")
if login(uer, pwd):
print("成功")
break
else:
print("失败")
elif arg == "2":
user = input("请输入用户名:")
pwd = input("请输入密码:")
is_exist = user_exist(user)
if is_exist:
print("用户名已经存在,注册失败")
else:
if register(user, pwd):
print("注册成功")
continue
else:
print("注册失败")
else:
print("输入错误,请重新输入")
main()
本项目仅使用了前期学习的基础知识,属于较为简单的入门级项目,后续将继续深入学习和拓展相关技术。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









