大家好,本文将围绕python登入系统注册登入,注册,退出的编程代码展开说明,python登录注册程序编写连接数据库gui编程是一个很多人都想弄明白的事情,想搞清楚python登录注册程序编写,用数据库需要先了解以下几个事情。
Source code download: 本文相关源码
*简单的Python代码:用户登录注册
利用业余时间,写了一个用户进行登录注册的代码,非常简单。主要实现的功能是:
- 可以进行用户登录,在用户进行登录之前,对用户名进行检查,查看是否是已经注册的用户,如果是已经注册的用户,则直接登录;如果是未注册的用户,需要进行注册才可以登录
- 用户名检查:用户名长度为8~18位,不在这个数字范围内的用户名不可以进行登录,字符不限
- 用户密码检查:密码长度为8~18位,不在这个范围内的用户名也是不可以进行注册的,字符不限(其实用户名和密码的长度都是可以自己改的)
- 不允许注册已经存在的用户名
话不多说,上代码:
'''*********************用-户-登-录-注-册********************'''
from time import sleep
dic = {}
document_path = r'C:\Users\liche\Desktop\user.txt'
def isNull():
'''判断document_path路径文件是否为空,为空返回True'''
# 方法一(推荐):直接用os下面的stat判断文件是否为空,比open更快;
#也可以直接将os.stat(document_path).st_size <=0放到函数调用的地方,不用再调用isNull方法,也需要去掉Login方法中isNull = True的初始化
return True if os.stat(document_path).st_size <=0 else False
#方法二:
# with open(document_path,'r',encoding='utf-8') as OPEN:
# date = OPEN.readlines()
# return True if len(date) == 0 else False
def Register(): #注册函数
name = input("请输入您要注册的用户名:")
if dic.__contains__(name):
print("\033[31m用户名已存在,请重新注册!\033[0m")
Register()
elif len(name) < 8 or len(name)> 18: #用户名长度检测
print("\033[31m用户名最少8位,最多18位\033[0m")
Register()
else:
pass1 = input("请输入密码:")
pass2 = input("请再次确认密码:")
if pass1 == pass2 and len(pass1) >=8 and len(pass1)<=18: #进行密码检测,判断2次密码是否输入一致
print("注册成功,请登录!\n")
with open(document_path, 'a', encoding='utf-8') as o:
o.write(f'{name}:{pass1}') if isNull() else o.write(f'\n{name}:{pass1}')
# o.write(f'{name}:{pass1}') if os.stat(document_path).st_size <=0 else o.write(f'\n{name}:{pass1}')
# 上面语句是写入用户名和密码 用户名和密码的存储格式是:user:password
Login() #注册完用户名后,调用登录函数
else:
print("\033[31m两次密码输入不一致,请重新注册!\n\033[0m")
Register() # 密码输入不一致,重新调用注册函数
def Login(): #登录函数
b = [];isNull = True
with open(document_path, 'r', encoding='utf-8')as o:
all = o.readlines()
b = [user.rstrip('\n') for user in all] # 列表推导式
user_name = input("\033[32m请输入您的用户名:\033[0m")
if len(b) <= 0:
yesNo = input("\033[31m您输入的用户不存在,是否需要注册 Y/N? :\033[0m")
Register() if yesNo.lower() == 'y' else sys.exit()
for i in b: #对数据库中的用户信息进行遍历
c = i.split(':')
dic[c[0]] = c[1]
if dic.__contains__(user_name): #检查输入的用户名是否存在数据库中
user_pass = input("\033[32m请输入密码:\033[0m") #如果存在就输入对应的密码
sys.exit('\033[32m登录成功\033[0m') if user_pass == dic[user_name] else sys.exit('\033[31m密码错误,已退出登录!\033[0m')
if b.index(i) == len(b)-1:
#判断是否已经遍历完所有的用户信息,如果遍历完了,没有找到输入的对应用户信息,说明用户不存在
print("\033[31m您输入的用户不存在!\033[0m")
YN = input("\033[32m是否需要注册用户Y/N ?: \033[0m")
Register() if YN.lower() == 'y' else sys.exit('\033[31m正在退出系统...\033[0m')
'''主函数就一行调用登录的代码'''
Login() #程序从这里开始运行
第一次写博客,不是特别熟悉,程序也比较简单,只是写着玩,后期会继续努力,如果有哪里不对的地方或者更高明的见解,还希望能得到您的指点,谢谢您!
txt文档中的用户信息存储示例:
admin001:12345678
admin002:87654321
admin003:asdfhkijk
转载请注明地址https://blog.csdn.net/asunshineboy/article/details/117189395