Python學習 8 小專案之登入註冊驗證

2021-09-26 01:09:38 字數 3193 閱讀 4699

簡介

本次專案登入註冊驗證是對之前學習知識點的加深學習,這次專案的練習的知識點有函式、判斷語句、迴圈語句、檔案操作等。

專案流程

執行**之後,輸出登入或者註冊選項。

當選擇登入之後,輸入使用者名稱密碼,如果該使用者資訊沒有註冊過,就輸出登入失敗,如果該使用者資訊已經註冊過,就顯示登入成功。

當選擇註冊之後,輸入使用者名稱密碼,如果該使用者資訊沒有註冊過,就輸出註冊成功,如果該使用者資訊已經註冊過,就顯示使用者名稱已經存在,註冊失敗。

**流程

執行代之後首先執行main()函式,mian()函式中接收使用者輸入的使用者名稱和密碼,使用者選擇登入,就呼叫loing()函式,將使用者輸入的資訊在和存放使用者資訊的檔案中的資訊進行比對,如果有該使用者的資訊就登入成功,否則失敗,使用者選擇註冊,在接收到使用者輸入的使用者名稱密碼之後,呼叫register()函式,在這裡將呼叫 user_exist()函式進行對使用者輸入的資訊進行判斷,如使用者輸入的資訊存在存放使用者資訊的檔案裡,輸出註冊失敗,否則註冊成功。

在login()和user_exist()函式中呼叫了錯誤處理函式。

錯誤處理函式介紹

try:

…except ioerror:

…try中的**執行沒有出現錯誤,就不再執行except中的**,如果try中的**出現錯誤,就執行except中的**。

**實現

如果你對python感興趣,我這有個學習python基地,裡面有很多學習資料,感興趣的+q群:688244617

deflogin

(username, password)

:"""

用於使用者名稱和密碼的驗證

:param username:使用者名稱

:param paaword:密碼

:return:true,使用者驗證成功;false,使用者驗證失敗

"""try:

f =open

("users"

,"r"

, encoding=

"utf-8"

)for line in f:

line = line.strip(

)# 清除換行符

# 無引數時移除兩側空格,換行符

# 有引數時移除兩側指定的字元

line_list = line.split(

"$")

if line_list[0]

== username and line_list[1]

== password:

# print("成功")

return

true

return

false

except ioerror:

return

false

defregister

(username, password)

:"""

註冊使用者

1、開啟檔案

2、使用者名稱$密碼

:param username:使用者名稱

:param password:密碼

:return:true:註冊成功;

"""with

open

("users"

,"a"

, encoding=

"utf-8"

)as f:

temp =

"\n"

+ username +

"$"+ password

f.write(temp)

return

true

defuser_exist

(username)

:"""

檢測使用者名稱是否存在

:param username:要檢測的使用者名稱

:return: true:使用者名稱存在;false:使用者名稱不存在

"""# 一行一行的去查詢,如果使用者名稱存在,return true:false

try:

with

open

("users"

,"r"

, encoding=

"utf-8"

)as f:

for line in f:

line = line.strip(

) line_new = line.split(

"$")

if line_new[0]

== username:

return

true

return

false

except ioerror:

return

false

defmain()

:while

true

:print

("歡迎登入***系統"

) arg =

input

("1:登入,2:註冊"

)if arg ==

"1":

uer =

input

("請輸入使用者名稱:"

) pwd =

input

("請輸入密碼:"

)if login(uer, pwd)

:print

("成功"

)break

else

:print

("失敗"

)elif arg ==

"2":

user =

input

("請輸入使用者名稱:"

) pwd =

input

("請輸入密碼:"

) is_exist = user_exist(user)

if is_exist:

print

("使用者名稱已經存在,註冊失敗"

)else

:if register(user, pwd)

:print

("註冊成功"

)continue

else

:print

("註冊失敗"

)else

:print

("輸入錯誤,請重新輸入"

)main(

)

VC小專案 13 0專案導引(1)

程式閱讀 多型性與抽象類 1 虛函式 includeusing namespace std class a virtual void print const 輸出 5ee5e 除錯過程 除錯心得 通過虛函式,可以通過基類的指標達到訪問子類成員函式的目的,去掉virtual關鍵字將得到不一樣的結果 參...

VC小專案 13 0專案導引(2)

1 請寫出程式的執行結果,並在除錯時對照理解 include using namespace std class vehicle 交通工具 請回答 當基類的指標指向派生類時,用指標呼叫同名成員函式,執行的是基類的成員函式,還是派生類的成員函式?為什麼會這樣?答 輸出結果 說明執行的是基類的成員函式。...

yii2小專案問題彙總

1.第乙個引數,路徑,絕對路徑和相對路徑都可以,常常用相對路徑,因為方便 遷移.2.第二個引數,由四位八進位制數組成,第一位通常是0,跟特殊許可權有關,可以不用太在意。需要注意的有兩點 第一,0777代表著最高許可權,但實際建立的目錄可能許可權是775,這個檔案許可權遮蔽值有關,意思就是你的許可權被...