python實(shí)現(xiàn)登錄與注冊(cè)系統(tǒng)
本文實(shí)例為大家分享了python實(shí)現(xiàn)登錄與注冊(cè)系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
實(shí)現(xiàn)功能
1.調(diào)用文本文件里的用戶信息
2.可以將注冊(cè)信息存儲(chǔ)在文本文件里
3.實(shí)現(xiàn)了密碼格式的限制
具體用戶信息將如下格式存儲(chǔ)在txt文本文件下

轉(zhuǎn)換后便于代碼利用的格式(列表中嵌套字典)

具體代碼如下:
#-*- coding=utf8 -*-
# @author:sololi
# date: 2020/11/3
# 文件說(shuō)明 :
import sys
def register(username,password):#登錄功能,且與存儲(chǔ)用戶表的文本文件進(jìn)行比較
#驗(yàn)證用戶名
shuju=readfile()
jg1 = 0
i = 0
while (i < len(shuju)):
if (username == shuju[i]["用戶名"]):
print("用戶名正確")
jg1 = 1
break
i += 1
# 用戶名錯(cuò)誤將不再驗(yàn)證密碼
if (jg1 != 1):
print("用戶名錯(cuò)誤")
# 驗(yàn)證密碼
if (jg1 == 1):
jg2 = 0
i = 0
while (i < len(shuju)):
if (password == shuju[i]["密碼"]):
print("密碼正確")
jg2 = 1
break
i += 1
if (jg2 != 1):
print("密碼錯(cuò)誤")
def logon(username):#注冊(cè)功能,且以正確格式存入文本文件
shuju=readfile()
jg3 = 0
i = 0
while (i < len(shuju)):
if (username == shuju[i]["用戶名"]):
print("用戶名已經(jīng)存在")
jg3 = 1
break
i += 1
if(jg3 == 0):
while True:
password = input("請(qǐng)輸入注冊(cè)的密碼(密碼不能小于6位,且不能為純數(shù)字)")
if (str.isdigit(password)==1) or (len(password)<6):
print("密碼格式錯(cuò)誤")
else:
break
passwordagain=input("請(qǐng)?jiān)俅未_認(rèn)密碼")
while True:
if(password==passwordagain):
break
else:
print("兩次密碼不一致")
passwordagain = input("請(qǐng)?jiān)俅未_認(rèn)密碼")
# 將注冊(cè)的用戶信息存儲(chǔ)到文本文件中
f = open("data", mode='a+', encoding="utf8")
if shuju == []:
f.write("用戶名:{},密碼:{}".format(username, password))
if shuju != []:
f.write("\n用戶名:{},密碼:{}".format(username, password))
print("注冊(cè)成功")
f.close()
def readfile():#將數(shù)據(jù)轉(zhuǎn)換成列表字典形式,放在data.txt中便于后面登錄與注冊(cè)存放數(shù)據(jù)
f = open('data', "r+", encoding="utf8")
shuju = []
b = []
aa = {}
for line in f.readlines():
line = line.strip('\n')
a = line.split(' ')
i = 0
while i < len(a):
b = a[i].split(',')
i += 1
j = 0
while j < len(b):
if b == " ":
break
c = b[j].split(':', 1)
aa[c[0]] = c[1]
i += 1
j += 1
shuju.append(aa.copy()) # copy是為了防止添加是數(shù)據(jù)類型不同出錯(cuò)
f.close()
return shuju
while True:
choice=input("登錄輸入1,注冊(cè)輸入2,其他任意鍵退出")
if choice=="1":
id=input("輸入您的賬號(hào)")
pw=input("輸入您的密碼")
register(id,pw)
break
if choice=="2":
id=input("輸入你注冊(cè)的賬號(hào)")
logon(id)
continue
else:
print("退出成功")
sys.exit(0)
初學(xué)者作品,有錯(cuò)請(qǐng)指教
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 用Python實(shí)現(xiàn)web端用戶登錄和注冊(cè)功能的教程
- Python實(shí)現(xiàn)注冊(cè)登錄系統(tǒng)
- Python登錄注冊(cè)驗(yàn)證功能實(shí)現(xiàn)
- Python實(shí)現(xiàn)注冊(cè)、登錄小程序功能
- Python制作簡(jiǎn)易注冊(cè)登錄系統(tǒng)
- Python +Selenium解決圖片驗(yàn)證碼登錄或注冊(cè)問題(推薦)
- Python3 Tkinkter + SQLite實(shí)現(xiàn)登錄和注冊(cè)界面
- python應(yīng)用文件讀取與登錄注冊(cè)功能
- Python?+?Tkinter連接本地MySQL數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄
- Python實(shí)現(xiàn)用戶登錄注冊(cè)
相關(guān)文章
詳解PyTorch預(yù)定義數(shù)據(jù)集類datasets.ImageFolder使用方法
這篇文章主要為大家介紹了PyTorch預(yù)定義數(shù)據(jù)集類datasets.ImageFolder使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python使用PEfile模塊實(shí)現(xiàn)分析PE文件
PeFile模塊是Python中一個(gè)強(qiáng)大的便攜式第三方PE格式分析工具,用于解析和處理Windows可執(zhí)行文件,本文主要就來(lái)講講如何使用PEfile模塊實(shí)現(xiàn)分析PE文件,需要的可以參考下2023-08-08
Python運(yùn)行第一個(gè)PySide2的窗體程序
本文主要介紹了Python運(yùn)行第一個(gè)PySide2的窗體程序,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Python xlrd模塊導(dǎo)入過(guò)程及常用操作
這篇文章主要介紹了Python xlrd模塊導(dǎo)入過(guò)程及常用操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python操作dict時(shí)避免出現(xiàn)KeyError的幾種解決方法
這篇文章主要介紹了Python操作dict時(shí)避免出現(xiàn)KeyError的幾種解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
在Python中通過(guò)threading模塊定義和調(diào)用線程的方法
由于著名的GIL的存在,Python中雖然能創(chuàng)建多條線程,但卻不能同時(shí)執(zhí)行...anyway,這里我們還是來(lái)學(xué)習(xí)一下在Python中通過(guò)threading模塊定義和調(diào)用線程的方法2016-07-07
python 實(shí)現(xiàn)關(guān)聯(lián)規(guī)則算法Apriori的示例
這篇文章主要介紹了python 實(shí)現(xiàn)關(guān)聯(lián)規(guī)則算法Apriori的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09

