用戶登陸接口(BATE)

#用戶輸入用戶名密碼,若是在鎖定文件中,則告知用戶名已被鎖定。
#如用戶不在鎖定文件中,匹配用戶名和密碼,若是驗證成功打印歡迎介面
#若是匹配不成功,讓用戶從新輸入,用戶有三次機會,超過3次退出程序
#若是用戶最後輸入的用戶名在系統用戶文件中,則將其寫入到鎖定文件,反之則不寫入鎖定文件。

# 文件account.txt內容以下:
# Jacky   1234
# sky     3356
# Yvone   5566

#account_lock.txt爲空

cmd = input('''
    1:登陸系統
    2:即出系統
請選擇:
''')

if cmd.isdigit() and int(cmd) == 2:
    exit()
elif cmd.isdigit() and int(cmd) == 1:
    pass
else:
    print('您輸入有誤!')
    exit()

i = 0
j = 0
while i < 3:
    user_input = input('Please input your username:')
    passwd_input = input('Please input your password:')
    list_lock = open('account_lock.txt', 'r+')
    lock_user = list_lock.readlines()
    for line in lock_user:
        lines = line.strip('\n')
        if lines == user_input:
            print('Username %s has been locked!' % user_input)
            exit()
    else:
        pass

    list_user = open('account.txt', 'r')
    user_info = list_user.readlines()
    for line in user_info:
        (username, password) = line.strip('\n').split()
        if username == user_input and password ==  passwd_input:
            print('''\033[1;32m
*************************************************
*                  WELCOME                      *
*************************************************
            \033[0m''')
            j = 3
            break
    if j < 2:
        j += 1
        print('\033[1;31m\nWrong username or password \033[0m')
        continue
    else:
        # 判斷用戶輸入的用戶名是否在系統的用戶列表中,若是存在將用戶名鎖定,若是不存在則不加入鎖定文件中。
        for i in user_info:
            if j != 3 and user_input in i.strip('\n').split():
                list_lock.write(user_input + '\n')
        i = 3

list_lock.close()
list_user.close()



print('contin')
相關文章
相關標籤/搜索