username = input("username:") #输入用户名 f = open('user.db', "r") #打开保存有用户名和密码的文件,r表示只读 d = open("deny.txt","r+") #打开黑名单,r+表示可以在后面增加内容 #添加一个flag来做动作判断 flag = False # 判断输入的用户名是否在黑名单中 if username in d.read().split(): print('youre account has been locked.') d.close() #如果不在黑名单中则判断是否在user.db文件中 else: for line in f: name = line.split()[0] passwd = line.split()[1] trytimes = 1 while username == name: password = input('please input your password:') if password == passwd: flag = True print('Welcome %s!' % username) break #由于3次输错密码后要封账号,所以要判断是否已经试了3次了。 elif trytimes == 3: #把密码输错3次的用户名写入deny.txt文档中 flag = True d.write('\n%s'%username) print('you have try too many times, your account has been locked.') break else: trytimes = trytimes + 1 print('Wrong password, please try again.') continue if flag == False: print('no such user!') exit() f.close()
写程序之前一定要写流程图,然后根据流程图写程序。