欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

day1_作业(账户登录检测)

程序员文章站 2022-07-06 19:19:19
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- f=open('/users/zhangyu/PycharmProjects/s14/day1/Homework_day1/name_password','r+')#'r+'代表可读可写, # 初始账户密... ......
#!/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次输入错误,存入锁定文件中的账户只能是最后一次输入的账户名称。
---------------------------------------------
'''