乙個簡單的註冊 登入程式

2022-07-29 05:45:08 字數 2101 閱讀 2715

#乙個簡單的註冊。登入程式。已實現反射,使用者只需要輸入數字即可選擇功能。可保留註冊資訊。定義了乙個只有退出功能的函式。

class user:

def __init__(self, name, pwd):

self.name = name

self.pwd = pwd

class authentic:

def __init__(self):

self.userfile = "user.txt"

def user_exist(self): #將儲存使用者名稱密碼的檔案開啟,資訊儲存在生成器裡,便於後面使用:

# 1.註冊時驗證是否有同名的。2.登入時驗證使用者名稱、密碼。不需要傳參。

with open(self.userfile,"r",encoding="utf-8") as f:

for line in f:

line = line.strip()

line_new = line.split("#")

yield line_new

def register(self): #註冊功能

while true:

username=input('請輸入使用者名稱:')

for lst in list(self.user_exist()):

if lst[0]== username:

print('已有同名的,請重新輸入!')

return #如果輸入錯誤,就要退出重新選擇。如何只返回到

#「username=input('請輸入使用者名稱:')」這一行呢?

password=input('請輸入密碼:')

password2=input('請確認密碼:')

if password==password2:

user=user(username,password)

with open(self.userfile,"a",encoding="utf-8")as f:

temp = "\n" + username + "#" + password

#'\n'解決存入時不換行的問題。但有個缺點,txt檔案的第一行總是空行。

f.write(temp)

print('註冊成功,請轉人登入介面。')

return false

else:

print('你兩次輸入的密碼不一致,請重新輸入!')

def login(self):

username=input('請輸入使用者名稱:')

pwd=input('請輸入密碼:')

for lst in list(self.user_exist()):

if lst[0]== username and lst[1]==pwd:

print('登入成功!')

break

else:

print('使用者名稱或密碼錯誤,請檢查後重新輸入!')

def ex(self): #定義了只有退出功能的函式,使用者只需輸入'3',即可退出。

exit() #函式名不能是exit。

def run(self):

opt_lst= [['登入','login'],['註冊','register'],['退出','ex']]

#解決了中文字串與對應的函式名稱不一致的問題。

while true:

for index,item in enumerate(opt_lst,1):

#給列表設定索引,便於使用者輸入數字。

print(index,item[0],item[1])

num = int(input('請輸入您要操作的序號 :').strip())

for index,item in enumerate(opt_lst,1):

if num==index:

if hasattr(obj,item[1]): #此處必須反射物件(obj)中的函式。

if getattr(obj,item[1]):

getattr(obj,item[1])()

if __name__ == '__main__':

obj = authentic()

obj.run()

python實現乙個簡單的登入註冊Demo

coding utf 8 created on fri feb 2 16 14 31 2018 author administrator 乙個簡單的登入註冊demo def showmessage print 新建使用者 鍵入n n print 登入帳號 鍵入e e print 退出程式 鍵入q q...

簡單實現乙個可以註冊 登入 登出的系統

from user class.user import admin if name main user admin while true number input 1 註冊,2 登入,3 退出登入 is or no number.isdigit if not is or no print 請輸入數字...

乙個簡單的verlig程式 乙個簡單C程式的介紹

我們前面學了c語言的一些理論知識,今天通過乙個簡單的程式先來看一看c語言程式是什麼樣子。然後再對程式中的 進行介紹。這個語句的功能是進行有關的預處理操作。include稱為檔案包含命令,後面尖括號的內容稱為標頭檔案或首檔案。此處指包含stdio.h系統標頭檔案,在下面主函式中使用的printf 函式...