Python 基礎登入接口
阿新 • • 發佈:2017-07-06
需求 提示 con swd 文件 size blog inf count
一:
編寫登陸接口
基礎需求:
讓用戶輸入用戶名密碼
認證成功後顯示歡迎信息
輸錯三次後退出程序
1.dic 方法
name_info={‘zhang‘:‘123‘} count=0 while count<3: name=input(‘請輸入用戶名:‘) if name in name_info: password=input(‘請輸入密碼:‘) if password == name_info[name]: print(‘歡迎登入‘) break else:print(‘密碼輸入有誤,請重新輸入密碼:‘) count+=1 else: print(‘輸入信息有誤,請重新輸入‘) count+=1
2.list方法
name_info=[‘zhang‘,‘123‘] count=0 while count < 3: name=input(‘請輸入用戶名:‘) if name == name_info[0]: password=input(‘請輸入密碼:‘) if password == name_info[1]:print(‘歡迎登入‘) break else: print(‘密碼輸入錯誤,請重新輸入‘) count+=1 else: print(‘用戶名輸入錯誤,請重新輸入‘) count+=1
二:升級版需求:
可以支持多個用戶登錄 (提示,通過列表存多個賬戶信息)
用戶3次認證失敗後,退出程序,再次啟動程序嘗試登錄時,還是鎖定狀態(提示:需把用戶鎖定的狀態存到文件裏)
name_info={‘zhang‘:{‘passwd‘:‘123‘,‘count‘:0}, ‘xin‘:{‘passwd‘:‘123‘,‘count‘:0}, ‘xiao‘:{‘passwd‘:‘123‘,‘count‘:0} } count=0 while True: name=input(‘請輸入你的用戶名:‘) if name not in name_info: print(‘此用戶名不存在,請重新輸入!‘) continue with open(‘db.txt‘,‘r‘) as f: lock_users=f.read().split(‘|‘) if name in lock_users: print(‘用戶%s已經被鎖定‘ %name) break if name_info[name][‘count‘] > 2: print(‘嘗試次數過多,被鎖定‘) with open(‘db.txt‘, ‘a‘) as f: f.write(‘%s|‘ % name) break # if name in name_info: password=input(‘請輸入你的密碼:‘) if password == name_info[name][‘passwd‘]: print(‘登入成功‘) break else: print(‘密碼輸入錯誤,請重新輸入:‘) name_info[name][‘count‘]+=1
Python 基礎登入接口