python学习之路-练习小程序02(模拟用户登录)

需求:模拟用户登录,登录成功提示正确信息,退出程序,登录失败,提示错误的信息,允许登录三次,把登录失败的用户信息写入文件

def loginerror(username):  #封装写入文件函数
    with open("logerror.txt", 'a', encoding='utf-8') as f:
        usernameerror = ''.join(["无法登陆的用户名:", username])  #将用户名和提示信息拼接
        f.write(usernameerror.strip() + '\n')

errorname = []  #创建一个空列表,用来添加无法登陆的用户名
errorcount = 0  #用来记录无法登陆的次数
n = 3
while 0 < n:  #限制错误登陆次数
    username = input("请输入用户名:")
    password = input("请输入密码:")
    with open("login",'r') as f:  #使用此方式打开,无需执行close关闭程序
        for i in f.readlines():
            user, psd = i.strip().split()  #去掉读取文件内容两边的空格并用空格拆分,分别赋值给user和psd

    if username  == user and password == psd:
        print("登陆成功")
        break  #登陆成功就跳出循环

    elif username != user or password != psd:
        print("用户名或密码错误,请重新输入")
        loginerror(username)  #通过调用写入文件函数把无法登陆的用户名信息写入错误文件中记录
        errorname.append(username)  #将无法登陆的用户名添加到列表里
        errorcount += 1 #无法登陆的次数加1
        if errorcount >= 1: #从第二次开始判断无法登陆的用户
            if username == errorname[0]: #判断第一次登陆以后再次无法登陆的用户是否和第一次无法登陆的用户一样
                n -= 1
    if n == 0:
        print("登陆错误已超过3次,无法再次登陆")

 

posted @ 2018-04-11 13:20  zengwenhai  阅读(308)  评论(0编辑  收藏  举报