模擬登陸作業需求:
1. 使用者輸入帳號密碼進行登陸
2. 使用者資訊儲存在檔案內
3. 使用者密碼輸入錯誤三次後鎖定使用者
額外實現功能:
1.提示輸入錯誤次數
2.輸入已鎖定使用者會提示
3.使用者不存在會提示
正確使用者資訊檔案中以字典形式儲存使用者名稱密碼:
鎖定使用者資訊檔案中以列表形式儲存鎖定使用者名稱:['name']流程圖:
詳細**:(python3.6)
#view code!/usr/bin/env python
#-*- coding:utf-8 -*-
#author: even
count = 0 #
為了記錄需求中3次輸入錯誤避免的次數,計數項賦初始值
load = true #
為了完成功能後退出,賦初始值
file = open("
正確使用者資訊檔案
",'r
',encoding='
utf-8
') #
開啟正確使用者資訊文件,獲取正確的使用者名稱密碼
file_wrong = open("
鎖定使用者資訊檔案
",'r+
',encoding='
utf-8
') #
開啟已鎖定的使用者資訊文件,獲取鎖定的使用者名稱密碼
line = eval(file.readline()) #
將正確資訊中的字串轉換成字典(原字串為字典格式)
line_wrong = eval(file_wrong.readline()) #
將正確資訊中的字串轉換成列表(原字串為列**式)
def out(): #
將重複**定義,功能是幫助跳出while迴圈並關閉已開啟文件
global load #
宣告全域性變數
load = false #
賦值load,為了跳出while迴圈
file_wrong.close() #
關閉正確使用者資訊文件
file.close() #
關閉鎖定使用者資訊文件
while load: #
判斷是否已完成功能
name = input("
請輸入使用者名稱:
") #
輸入使用者名稱
password = input("
請輸入密碼:
") #
輸入密碼
if name in line and name not
in line_wrong: #
判斷使用者名稱是否正確,和是否已被鎖定
while count <= 3: #
判斷是否已迴圈3次
if password == line[name]: #
判斷使用者名稱是否對應正確的密碼
print("
您已成功登陸
") #
輸出成功登陸資訊
out() #
呼叫自定義out方法
break
#跳出本次迴圈
else: #
說明未輸入正確的密碼
count +=1 #
計數項自加一
msg_count = '''
第%s次密碼輸入錯誤\n
'''%(count) #
提示輸入錯誤次數
print(msg_count) #
列印錯誤次數資訊
if count < 3: #
小於三次錯誤輸入,可以重新輸入
password = input("
密碼錯誤,請重新輸入密碼:
") #
重新輸入密碼
elif count == 3: #
判斷是否已輸錯三次
print("
已輸錯3次,賬號已鎖定
") #
列印鎖定提示資訊
將已鎖定資訊加入鎖定元組中
file_wrong.seek(0) #
輸入指標移到開頭,如果不移動會產生多個元組
file_wrong.write(str(line_wrong)) #
寫入鎖定資訊
file_wrong.tell() #
獲取當前的輸入指標位置,如果不獲取會產生多個元組
out() #
呼叫out方法
break
elif name in line_wrong: #
判斷使用者名稱是否在已鎖定使用者名稱中
print("
該使用者名稱已被鎖定
") #
列印已鎖定通知資訊
out() #
呼叫自定義out方法
break
#跳出當前迴圈
else: #
說明使用者名稱不在正確使用者名稱資訊中
print("
該使用者名稱不存在
") #
列印使用者名稱輸入錯誤資訊
out() #
呼叫out方法
第一周作業
專案shrinkwrap games operating systems 這些軟體是怎麼說服你 陌生人 成為他們的使用者的?他們的目標都是盈利麼?通過廣告 老使用者口碑推薦 實體店推薦等方式發展新使用者,目標一般是盈利的,賺取使用者現金。通過廣告 老使用者口碑推薦等方式發展新使用者,目標一般是盈利的...
第一周作業
我的乙個小目標 7月13下午15.58分,我不遠千里踏上了北上求學謀生之路 年近快30歲的我深深的感到了孔子所謂的男人三十而立的壓力,從小到大父母對我的要求和期望都比較大,而我總是讓他們失望,一直都是一事無成,有的時候我都在質問自己甚至心中還有一絲幻想,如果時光能倒退從來我以前一定好好學習,考乙個好...
第一周作業
1 常見linux的發行版有哪些?並描述不同發行版之間的聯絡與區別 主要分redhat系列和debian系列。不同發行版本之間的區別是包管理工具的不同 redhat系列 redhat centos,fedora debian系列 linux mint ubuntu,debian gnu linux ...