Python之编写登陆接口

python学习网 2017-07-10 12:55:04

1.输入用户名密码;

2.认证成功后显示欢迎信息;

3.错误三次后,账号被锁定。

 

账号文件:user.txt 

锁定文件:locked.txt 

流程图如下:

# -*- coding:utf-8 -*-
# Author  Caoxl
import sys

account_file='E:\user.txt'
locked_file='E:\locked.txt'

def deny_account(username):
    print('您的用户已被锁定')
    with file(locked_file,'a') as deny_f:
        deny_f.write('\n'+username)

def main():
    retry_count=0
    retry_limit=3                                   #循环次数
    while retry_count<retry_limit:                 #用户最多重复登陆3次
        username=raw_input('请输入您的用户名:')  #引导用户输入用户名
        with file(locked_file,'r') as  lock_f:
            #采用with打开方式,将locked_file赋值lock_f,防止忘记f.close()关闭文件
            for line in lock_f.readlines():       #循环遍历每一行的内容
                if len(line)==0:                  #对每一行内容进行处理
                    continue
                if username == line.strip():
                    #利用.strip这个函数去掉换行符,来对username进行匹配。
                    sys.exit('用户已经被锁定!')
        if len(username)==0:        #提示用户登录时,用户名不能为空!
            print('用户名不能为空,请重新输入')
            continue

        password= raw_input('请输入您的密码:')    #引导用户输入密码
        with file(account_file,'r') as  account_f:
            flag= False

            for line in account_f.readlines():
                user,pawd=line.strip().split()       #将用户名和对应密码进行处理
                if username==user and password==pawd: #判断用户名和密码
                    print('success!')
                    flag=True
                    break                      #退出for循环
        if flag==False:                       #避免用户在三次输入后,依然提示重新输入。
            if retry_count<2:
                print('您输入的用户名或密码有误,请重新输入!')

            retry_count+=1

        else:
            print('欢迎用户登陆成功!!')
            break
            # 加标志位是为了用户能够成功推出整个循环!
            deny_account(username)
            #对应上面的def函数把锁定账号加入文档中去

if __name__ == '__main__':
    main()
View Code

 

阅读(804) 评论(0)