小白根据Internet改动的python登录注册接口

首先要创建2个txt文本    命名为“a.txt” “b.txt”
   
 1 import time
 2 def login():                                                                      #定义函数login,功能:注册时使用
 3     print('-' * 20)
 4     print('--欢迎来到注册中心--')
 5     print('-' * 20)
 6     n = []                                                                        #定义空列表
 7     User=input('用户:').strip()                                                    #定以变量User,记录用户输入
 8     Passwd=input('密码:').strip()                                                  #同上
 9     n.append(User)                                                                #将User、Passwd添加到n列表里
10     n.append(Passwd)
11     Name=':'.join(n)                                                              #使用join函数将列表转换成字符串以:号分割
12     name.write('%s \n' % Name)                                                    #写到用户的文件里
13 
14 while True:                                                                       #定义while循环,只有条件不成立时才会退出循环
15     name=open('a.txt','r+')
16     password=open('b.txt','r+')                                                   #以读写的方式打开文件
17     User={}                                                                       #定义一个空字典
18     for Line in name.readlines():                                                 #将文件全部一行一行的读取出来,定义为Line
19         key,value=Line.split(':')                                                 #定义字典的key,value 以:分割
20         User[key]= value                                                          #给字典的key赋值,{'alex': '123\n', 'jack': '456\n'}
21     LockUser=[]                                                                   #定义一个空列表
22     for a in password.readlines():                                                #将锁文件里的内容一行一行读进内存
23         LockLine=a.strip()                                                        #去掉空格
24         LockUser.append(LockLine)                                                 #添加到LockUser列表里
25 
26     break_flag=False                                                              #定义一个跳出循环的flag,当子循环要求父循环一起跳出循环时,值为True
27     UserName=input('请输入用户名:').strip()                                         #记录用户名输入
28     if len(UserName)==0:                                                          #判断输入是否为空,空则跳出当前循环,进入下一次循环
29         print('\033[31m你没有输入,请输入正确用户名\033[0m')
30         continue
31     elif UserName not in User:                                                    #如果用户输入用户名不在User里,会提示用户是否注册新用户
32         Num=input('\033无效用户!! 是否注册新用户[Y] or [N]:\033').strip()
33         if Num == 'y':                                                            #如果用户输入y就是调用上面的login函数注册新用户,n则跳出当前循环
34             time.sleep(1)
35             login()
36             print('\033------注册成功-----\033')
37         else:
38            print('请重新输入!!!')
39            continue
40     elif UserName in LockUser:                                                    #如果用户输入用户名在LockUser里直接退出
41         print('账户已经被锁定,请联系管理员进行解锁!!!')        
42         break
43     else:
44         Num = 1                                                                   #定义计数器
45         for i in range(3):                                                        #for循环三次
46            PassWord=input('请输入密码:').strip()                                    #提示用户输入密码,为空重新输入
47            if len(PassWord)==0:
48                print('密码不能为空!!')
49                continue
50            elif  PassWord in User[UserName]:                                      #匹配用户名密码
51               print("\033[32m登录成功!祝你生活愉快!!!\033[0m")
52               break_flag=True                                                     #登录成功,退出子循环
53               break
54            else:
55               print('密码错误,三次以后账号锁定,你已使用%s次.' % Num)
56            Num += 1                                                               #相反密码输入错误就会自加1,当Num等于4的时候账户锁定
57            if Num == 4:
58               print('账户锁定,请联系管理员进行解锁!!!')
59               password.write('%s \n' % UserName)                                  #将锁定用户写入password里
60               break_flag=True                                                     #退出子循环
61               break
62         if break_flag:                                                            #判断子循环是否退出,退出则一起退出
63            break

 

posted @ 2018-08-27 17:47  Hello41  阅读(96)  评论(0)    收藏  举报