要求如下:
編寫乙個登入介面
1、輸入使用者名稱和密碼
2、認證成功後提示歡迎資訊
3、輸錯三次後鎖定
流程圖如下:
程式分析:
1、最多迴圈三次,若超過三次則鎖定
2、鎖定的賬號記錄到lock文件中
3、賬號、密碼輸入錯誤三次都進行鎖定
4、賬號密碼正確直接提示登入成功,並退出程式
5、若賬號被鎖定則直接退出程式
accounts.txt檔案中內容如下:
account_lock.txt檔案中的內容如下:
(使用as登入時,就會提示該使用者名稱已被鎖定)
**如下:
#/use/bin/python3
# -*- coding: utf-8 -*-
account_file = "accounts.txt" #記錄使用者名稱和密碼的檔案
lock_file = "account_lock.txt" #記錄鎖定的賬號檔案
i = 0 #迴圈計數器,用於統計輸入的次數
while i < 3:
username = input("please enter username:") #輸入使用者名稱
username = username.strip()
if len(username) == 0: #判斷使用者名稱是否為空
print("the username can not be empty!") #使用者名為空時,給出提示
loacf = open(lock_file) # 輸入使用者名稱後,開啟lock檔案,檢查此使用者是否被lock了
for line in loacf.readlines():# 迴圈lock檔案
if username == line.strip("\n"): # 去掉換行符
print("the user %s is lock!" %username) #提示使用者已被鎖定
exit() #退出迴圈程式
password = input("please enter password:") #輸入密碼
if len(password) == 0:
print("the password can not be empty!") #密碼為空時,給出提示
use_file = open(account_file,"r") # 開啟使用者賬號檔案
flag = false
for line in use_file.readlines():
user,pwd = line.strip("\n").split() # 去掉每行多餘的\n並把這一行按空格分成兩列,分別賦值為user,pwd兩個變數
if username == user and password == pwd: # 判斷使用者名稱和密碼是否都能匹配上
print("hello,welcome %s" % username)
flag = true # 匹配上就變為true
break # 然後就不用繼續迴圈了,直接跳出
use_file.close() # 關閉檔案
if flag == false: # 如果flag還為false,則還需要繼續迴圈
print("sorry,the username:%s or password:%s is unmatched!" %(username,password)) #提示使用者名稱或密碼不匹配
i += 1 # 計數器加1
else:
print("welcome login my learning system!") #提示成功登入
break # 使用者成功登入,退出迴圈程式
else:
print("your account %s is lock!" % username)
g = open(lock_file,"a")
g.write(username) # 把lock的使用者名稱追加到lock檔案中
g.write("\n") # 插入斷行
g.close() # 關閉檔案
Python學習之路(一)
1 物件導向的程式設計思維。2 運用模組進行程式設計。3 遊戲程式設計。4 計算機 在開始搜尋欄中輸入idle 來啟動python gui 當看到 提示符即表示python已經準本好了。alt n 下一條指令 alt p 上一條指令 ctrl n 新建程式設計視窗 f5執行 六 python語法 列...
Python學習之路一
一 注釋 當行注視 被注釋內容 多行注釋 被注釋內容 二 pyc檔案 執行python 時,匯入了其他的 py 檔案,那麼,執行過程中會自動生成乙個與其同名的 pyc 檔案,該檔案就是python直譯器編譯之後產生的位元組碼。ps 經過編譯可以產生位元組碼 位元組碼通過反編譯也可以得到 python...
Python學習之路(一)
python字串 在python中,字串可加 可乘。str1 hust str2 whr str3 str1 str2 str4 hust 3 輸出結果為str3 hustwhr,str4 husthusthust python中的乘除法 python中 為乘方運算子,2 4為2的4次方,5 5為5...