Python实现简易用户登录注册系统:基础代码与逻辑解析
本文介绍使用Python编写的简易用户登录注册系统。代码实现了用户名长度校验(8-18位)、密码一致性验证及重复注册拦截,并将用户数据以明文格式存储于本地TXT文件中。适合Python初学者理解基础输入输出、文件操作及条件判断逻辑,代码简洁易懂,附带完整实现逻辑说明。
Python简易用户登录注册系统实现
简易Python代码:用户登录注册
利用业余时间,编写了一个用于用户登录和注册的Python脚本,整体逻辑较为简单。主要实现的功能包括:
1、支持用户登录功能。在用户尝试登录前,系统会检查该用户名是否已存在。若用户名已注册,则直接进入登录流程;若未注册,则提示用户需先完成注册才能登录。
2、用户名格式检查:用户名长度必须介于8至18位之间,超出此范围的用户名将被拒绝登录,对字符类型无特殊限制。
3、用户密码检查:密码长度同样要求为8至18位,不符合此长度要求的用户无法完成注册(注:用户名和密码的长度限制实际上可根据需求自行修改)。
4、系统禁止注册已存在的用户名,确保用户名的唯一性。
以下是具体代码实现:
核心代码逻辑与文件存储机制
'''*********************用-户-登-录-注-册********************'''
from time import sleep
dic = {}
def Register(): #注册函数
name = input("请输入您要注册的用户名:")
if dic.__contains__(name):
print("用户名已存在,请重新注册!")
Register()
elif len(name) < 8 or len(name)> 18: #用户名长度检测
print("用户名最少8位,最多18位")
Register()
else:
pass1 = input("请输入密码:")
pass2 = input("请再次确认密码:")
if pass1 == pass2 and len(pass1) >=8 and len(pass1)<=18:
#进行密码检测,判断2次密码是否输入一致
print("注册成功,请登录!\n")
o = open(r'C:\Users\Lenovo\Desktop\user.txt', 'a', encoding='utf-8')
#创建一个对象o,用来打开文件
#这里的r'C:\Users\Lenovo\Desktop\user.txt'是txt文件的的地址,可以根据自己的情况,导入文件的绝对路径就可以了,前面的r一定要加上
o.write('\n'+name+':'+pass1)
#写入用户名和密码 用户名和密码的存储格式是:user:password
o.close()
Login() #注册完用户名后,调用登录函数
else:
print("两次密码输入不一致,请重新注册!\n")
Register() # 密码输入不一致,重新调用注册函数,进行注册
def Login(): #登录函数
o = open(r'C:\Users\Lenovo\Desktop\user.txt', 'r', encoding='utf-8')
#创建一个对象o,用来打开txt文档
all = o.read() #创建对象all用来读取文档内容
a = all.replace('\n',' ') #用空格' '来替换文档中的换行符
b = a.split(' ') #按照空格进行切割
user_name = input("请输入您的用户名:")
for i in b: #对数据库中的用户信息进行遍历
c = i.split(':')
dic[c[0]] = c[1]
if dic.__contains__(user_name): #检查输入的用户名是否存在数据库中
user_pass = input("请输入密码:") #如果存在就输入对应的密码
if user_pass == dic[user_name]:
print("登录成功!")
break
else:
print("密码错误,已退出登录!")
break
if b.index(i) == len(b)-1:
#判断是否已经遍历完所有的用户信息,如果遍历完了,没有找到输入的对应用户信息,说明用户不存在
print("您输入的用户不存在!")
YN = input("是否需要注册用户 (如果注册请输入:1 退出输入:0): ")
#这里只是一个提示信息,只有在输入1时才会调用注册函数,输入其他的都会直接退出
if YN == '1':
Register()
else:
print("3s后自动退出...")
sleep(3)
break
''''''
'''主函数就一行调用登录的代码'''
Login() #程序从这里开始运行这是首次撰写技术博客,对平台功能尚不熟悉,程序代码也较为简单,仅作为练习用途。后期将继续努力提升,若代码中存在错误或您有更优的见解,恳请指点,非常感谢!
TXT文档中存储的用户信息示例如下:
admin001:12345678 admin002:87654321 admin003:asdfhkijk
以上就是本文的全部内容,希望对您的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









