#!/usr/bin/env python#coding:utf-8''' 2017年8月19日 python 模拟用户登陆,连续失败次数超过3次永辉名被锁定 userfile 文件保存字典 用户名,和密码 sorryname 文件保存字典 登陆过的的用户名,登陆成功,值为0,登陆失败,值+1 当值大于等于3是,帐号被锁定,没法进行登陆'''import shelve# 私有属性,保存文件名__userfile = 'loginname.dat'__users = 'users'__sorryname = 'sorrylogin.dat'__sorry = 'sorryuser'#登陆功能def login(name,passwd): userfile = shelve.open(__userfile) users = userfile[__users] sorryname = shelve.open(__sorryname) sorry = sorryname[__sorry] try: if name in users: #登陆成功 if passwd == users[name]: sorry[name]=0 return '登陆成功' else: # 失败 if name in sorry: sorry[name]=sorry[name]+1 else: sorry[name]=1 return '密码错误' else: return '没有此用户,请注册' finally: sorryname[__sorry]=sorry sorryname.close()if __name__ == "__main__": #userfile = shelve.open('loginname.dat') #users = {'fuzhentao':'123456','zhangsan':'456789','lisi':'147852'} #userfile[__users]=users #userfile.close() '''sorryname = shelve.open(__sorryname) sorryuser={} sorryname[__sorry]=sorryuser sorryname.close()''' while True: sorryname = shelve.open(__sorryname) sorry = sorryname[__sorry] name = input('请输入用户名:') passwd = input('请输入密码:') if name in sorry and sorry[name]>=3: print("帐号被锁定") else: print(login(name,passwd))