day1_作业(账户登录检测)

#!/usr/local/bin/python3
# -*- coding:utf-8 -*-
f=open('/users/zhangyu/PycharmProjects/s14/day1/Homework_day1/name_password','r+')#'r+'代表可读可写,
# 初始账户密码已存入name_password文件
g=open('/users/zhangyu/PycharmProjects/s14/day1/Homework_day1/Account_lock','r+')#'r+'代表可读可写
#Account_lock为账户锁定文件,用于锁定账户的存取
a=0
while a<3:
    name= input('Input your name please!')
    lock_name= g.readline()
    for x in f:
        if name==x.strip() and name!=lock_name:
            print('Hello!',name)
            password=input('now,please input your password:')
            d=f.readline()#读取当前行的下一行
            if password==d.strip():#strip()方法,删除字符串中的空格/换行等符号
                print('Welcome!',name)
            break
        if name==lock_name:
            print('your account:',name,'has been locked!')
            break
    a+=1
    if name==x.strip():
        break
    print('incorrect input!please input again')
    f.seek(0)#将文件指针置0,以便x重新遍历文件f
    g.seek(0)
else:
    print('Sorry!your account will be locked')
    g.write(name)#3次错误后将账户名b写入lock文件g
'''
---------------------------------------------
尚未实现的功能:
    1.Account_lock存入锁定账户问题,代码第四行将'r+'改为'a+',虽然实现了换行存入,但又不能读写。
    2.识别账户是否锁定,每次只能识别一个,用name!=(m.strip() for m in g)无法实现,不知道原因。
    3.如果3次输入错误,存入锁定文件中的账户只能是最后一次输入的账户名称。
---------------------------------------------
'''

  

 

  

posted @ 2018-04-25 15:08  Octopuslnlzy  阅读(287)  评论(2编辑  收藏  举报