python作業 模擬登陸(第一周)

2022-07-13 04:18:14 字數 2666 閱讀 6861

模擬登陸作業需求:

1. 使用者輸入帳號密碼進行登陸

2. 使用者資訊儲存在檔案內

3. 使用者密碼輸入錯誤三次後鎖定使用者

額外實現功能:

1.提示輸入錯誤次數

2.輸入已鎖定使用者會提示

3.使用者不存在會提示

正確使用者資訊檔案中以字典形式儲存使用者名稱密碼:

鎖定使用者資訊檔案中以列表形式儲存鎖定使用者名稱:

['name']
流程圖:

詳細**:(python3.6)

#

!/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方法

view code

第一周作業

專案shrinkwrap games operating systems 這些軟體是怎麼說服你 陌生人 成為他們的使用者的?他們的目標都是盈利麼?通過廣告 老使用者口碑推薦 實體店推薦等方式發展新使用者,目標一般是盈利的,賺取使用者現金。通過廣告 老使用者口碑推薦等方式發展新使用者,目標一般是盈利的...

第一周作業

我的乙個小目標 7月13下午15.58分,我不遠千里踏上了北上求學謀生之路 年近快30歲的我深深的感到了孔子所謂的男人三十而立的壓力,從小到大父母對我的要求和期望都比較大,而我總是讓他們失望,一直都是一事無成,有的時候我都在質問自己甚至心中還有一絲幻想,如果時光能倒退從來我以前一定好好學習,考乙個好...

第一周作業

1 常見linux的發行版有哪些?並描述不同發行版之間的聯絡與區別 主要分redhat系列和debian系列。不同發行版本之間的區別是包管理工具的不同 redhat系列 redhat centos,fedora debian系列 linux mint ubuntu,debian gnu linux ...