雷电模拟器python编程接口_python:编写登陆接口(day 1)
作業要求:
輸入用戶名,密碼
認證成功顯示歡迎信息
輸入錯誤三次后鎖定用戶
Readme
1.user_id.txt是存放用戶id及密碼的文件
2.user_lock.txt是存放被鎖定的用戶id的文檔,默認為空.
3.程序會對user_id.txt里的合法用戶id進行判斷,若連續輸入用戶id錯誤達三次程序直接退出.
4.程序會輸入對正確用戶名后的密碼進行判斷,輸入密碼有3次機會,連續三次錯誤則會鎖定用戶id并且退出.
流程圖:
代碼:
#!/user/binenv python3
# -*- coding:utf-8 -*-
'''
Created on: 2015年1月16日
@author: 呂毅
Email: 371725153@qq.com
Version: 1.0
Description: 輸入用戶名密碼,認證成功顯示歡迎信息,認證失敗,輸錯三次后鎖定
'''
import sys,os,getpass
os.system('clear') #把終端代碼頁面清空,提供個干凈的視覺
i = 0
while i < 3: #只要用戶登錄異常不超過3次就不斷循環
username = input("請輸入用戶名:")
lock_file = open('user_lock.txt','r+') #當用戶輸入用戶名后,打開LOCK 文件 以檢查是否此用戶已經LOCK了
lock_list = lock_file.readlines()
for lock_line in lock_list: #循環LOCK文件
lock_line = lock_line.strip('\n') #去掉換行符
if username == lock_line: #如果LOCK了就直接退出
sys.exit('=======WARNING:該賬號 %s 已經被凍結========' % username)
user_file = open('user_id.txt','r') #打開帳號文件
user_list = user_file.readlines()
for user_line in user_list: #對帳號文件進行遍歷
(user,password) = user_line.strip('\n').split() #分別獲取帳號和密碼信息
if username == user: #如用戶名正常匹配
m = 0
while m < 3: #只要用戶密碼異常不超過3次就不斷循環
passwd = getpass.getpass('請輸入密碼:') #輸入密碼,相對安全
if passwd == password: #密碼正確,提示歡迎登錄
print('HI,%s,歡迎登錄系統' % username)
sys.exit(0) #正常退出
else:
if m != 2: #m=2時,是最后一次機會,不用在提示還剩余0次機會了
print('用戶 %s 密碼錯誤,請重新輸入,還有 %d 次機會' % (username,2 - m))
m += 1 #密碼輸入錯誤后,循環值增加1
else:
lock_file.write(username + '\n') #密碼輸入三次錯誤后,將該用戶追加到LOCK文件
sys.exit('用戶 %s 達到最大登錄次數,請聯系管理員!!' % username)
else:
pass #當用戶沒匹配時,跳過并繼續循環
else:
if i != 2: #i=2時,是最后一次機會,不用在提示還剩余0次機會了
print('用戶 %s 不存在,請重新輸入,還有 %d 次機會' % (username,2 - i))
i += 1 #當用戶輸入錯誤時,循環值增加1
else:
sys.exit('用戶 %s 不存在,退出' % username) #用戶輸入三次錯誤后,異常退出
lock_file.close() #關閉lock文件
user_file.close() #關閉user_id文件
總結
以上是生活随笔為你收集整理的雷电模拟器python编程接口_python:编写登陆接口(day 1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过 order_id 获取 参与拼团的
- 下一篇: 物联网 android前景,2018年物