__name__ print 密码 tao 连续 while lis 初学
- #!/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))
python 初学习 模拟用户登录
来源: http://www.bubuko.com/infodetail-2268120.html