python 用户三次登录

def lock_user_fi():           #循环遍历用户锁定文件函数
"""user locked file"""
with open('locked.txt') as lock_fi:
for line in lock_fi:
return line #给一个返回值,等下用到
 def user_list():      # 定义循环用户登录文件函数
    with open('user_login.txt','r') as user_login:
        for line in user_login:
            # (user,passwd)=line.strip().split('::')
            (a)=line.strip().split('::')   #因为存储用户登录的文件是以  username:password 的方式保存,所以以:: 来将值取出
            return a
           # return user,passwd

            # username.append(line.split('::'))
def user_login():  #定义用户登录程序
    """user login infomation"""
    user_list()      #调用 循环用户登录文件函数
    flag=False       #初始化一个值为假
    lock_user_fi()    #调用 用户锁定文件函数
    #
    # print(user,passwd)
    a=0               #进入大循环,有三次机会输入用户名
    while a<3:
        if flag:      #当flag 这个值为真时,退出本层
            break
        username=input('input username:')    
        if username in user_list():     #判断用户输入的值是否在 user_list()这个函数里,如果user_list()没有返回值的话,这里会拿不到信息。这一层a要自加,当用户输入的值在user_list()里
则进入输入密码 b = 1 while b < 4: #与用户输入用户名一样,先来一个循环,只要密码输入不对三次(b在自加),则退出本层 if flag: #当密码对的位置为‘真’时,这里不再输入密码,退出程序 break password = input('input pasword:') if password in user_list() and username in user_list(): #前面输入的用户名和密码都在 用户登录信息文件时,则登录成功. 同样,将flag 的值设为真, print('login successfully!') flag = True if password not in user_list(): #输入其它的信息,报错 print("invalid input") b+=1 #密码输入的次数在自加 if username in lock_user_fi(): #用户名在锁定文件里提示已锁定 print("user alread locked") flag=True #标志位,当程碰到flag 为真的时候,就会退出,上面有条件判断flag if username not in user_list() and username not in lock_user_fi(): #输入的信息 不在用户登录文件,也不在用户锁定文件,报错。 print("invalid input") a+=1 #最外层的用户输入次数在自加,当加到3时,退出程序 if username in user_list(): flag=True else: #输入对或输入错,这一段都执行 ‘program exit’, print('program exit') def user_loop(): pass # a=0 # while a<3: # user_input() # a+=1 #user_loop()
user_login() #调用 3次登录函数

代码
def lock_user_fi():
    """user locked file"""
    with open('locked.txt') as lock_fi:
        for line in lock_fi:
            return line
def user_list():
    with open('user_login.txt','r') as user_login:
        for line in user_login:
            # (user,passwd)=line.strip().split('::')
            (a)=line.strip().split('::')
            return a
           # return user,passwd
            # username.append(line.split('::'))
def user_login():
    """user login infomation"""
    user_list()
    flag=False
    lock_user_fi()
    user_list()
    # print(user,passwd)
    a=0
    while a<3:
        if flag:
            break
        username=input('input username:')
        if username in user_list():
            b = 1
            while b < 4:
                if flag:
                    break
                password = input('input pasword:')
                if password in user_list() and username in user_list():
                    print('login successfully!')
                    flag = True
                # if username in lock_user_fi():
                #     print("user alread locked")
                if password not in user_list():
                    print("invalid input")
                b+=1
        if username in lock_user_fi():
            print("user alread locked")
            flag=True
        if  username not in user_list() and username not in lock_user_fi():
            print("invalid input")
        a+=1
        if username in user_list():
            flag=True
    else:
        print('program exit')

def user_loop():
    pass
    # a=0
    # while a<3:
    #     user_input()
    #     a+=1

#user_loop()
user_login()
# user_list()
#
 
posted @ 2017-04-07 00:16  tonycloud  阅读(493)  评论(0)    收藏  举报