标签:三次 put with open 账号密码 mes 验证 use auth color
写一个用户登录认证函数,要求:
1.要求用户输入账号密码和txt中的用户名数据库对比;
2.要求用户有三次尝试机会;
3.要求用户登陆后,执行其他功能无需再验证;
txt数据:
{‘auth_name‘:‘user0‘, ‘auth_passwd‘:‘123‘}
{‘auth_name‘:‘user1‘, ‘auth_passwd‘:‘123‘}
{‘auth_name‘:‘user2‘, ‘auth_passwd‘:‘123‘}
{‘auth_name‘:‘user3‘, ‘auth_passwd‘:‘123‘}
1 auth_state = {‘auth_name‘: None, ‘auth_log‘: False} 2 count = 3 3 4 5 def auth(fun): 6 def wap(*args, **kwargs): 7 if auth_state[‘auth_name‘] and auth_state[‘auth_log‘]: 8 res = fun(*args, **kwargs) 9 return res 10 global count 11 while 1: 12 if count > 0: 13 user = input(‘enter your auth name:\n‘).strip() 14 passwd = input(‘enter your auth passwd:\n‘).strip() 15 with open(‘test‘, ‘r‘) as f: 16 for line in f: 17 line = eval(line) 18 if line[‘auth_name‘] == user and line[‘auth_passwd‘] == passwd: 19 auth_state[‘auth_name‘] = user 20 auth_state[‘auth_log‘] = True 21 res = fun(*args, **kwargs) 22 return res 23 else: 24 print(‘user_name or passwd is wrong‘) 25 count -= 1 26 continue 27 else: 28 print(‘three times faile, try later.‘) 29 break 30 31 return wap 32 33 34 @auth 35 def log(): 36 print(‘welcome back‘) 37 38 39 @auth 40 def home(): 41 print(‘welcome to home‘) 42 43 44 log() 45 home()
标签:三次 put with open 账号密码 mes 验证 use auth color
原文地址:https://www.cnblogs.com/hrtian/p/9721532.html