溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用python編寫一個登錄與注冊功能

發(fā)布時間:2020-12-01 16:07:16 來源:億速云 閱讀:172 作者:Leah 欄目:開發(fā)技術(shù)

利用python編寫一個登錄與注冊功能?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

實現(xiàn)功能

1.調(diào)用文本文件里的用戶信息
2.可以將注冊信息存儲在文本文件里
3.實現(xiàn)了密碼格式的限制

具體用戶信息將如下格式存儲在txt文本文件下

利用python編寫一個登錄與注冊功能

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

利用python編寫一個登錄與注冊功能

具體代碼如下:

#-*- coding=utf8 -*- 
# @author:sololi
# date: 2020/11/3
# 文件說明 :
import sys
def register(username,password):#登錄功能,且與存儲用戶表的文本文件進行比較
  #驗證用戶名
  shuju=readfile()
  jg1 = 0
  i = 0
  while (i < len(shuju)):
   if (username == shuju[i]["用戶名"]):
    print("用戶名正確")
    jg1 = 1
    break
   i += 1
  # 用戶名錯誤將不再驗證密碼
  if (jg1 != 1):
   print("用戶名錯誤")
  # 驗證密碼
  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("密碼錯誤")

def logon(username):#注冊功能,且以正確格式存入文本文件
   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("請輸入注冊的密碼(密碼不能小于6位,且不能為純數(shù)字)")
     if (str.isdigit(password)==1) or (len(password)<6):
       print("密碼格式錯誤")
     else:
      break
    passwordagain=input("請再次確認密碼")
    while True:
     if(password==passwordagain):
      break
     else:
      print("兩次密碼不一致")
      passwordagain = input("請再次確認密碼")
    # 將注冊的用戶信息存儲到文本文件中
    f = open("data", mode='a+', encoding="utf8")
    if shuju == []:
     f.write("用戶名:{},密碼:{}".format(username, password))
    if shuju != []:
     f.write("\n用戶名:{},密碼:{}".format(username, password))
    print("注冊成功")
    f.close()

def readfile():#將數(shù)據(jù)轉(zhuǎn)換成列表字典形式,放在data.txt中便于后面登錄與注冊存放數(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ù)類型不同出錯
 f.close()
 return shuju

while True:
 choice=input("登錄輸入1,注冊輸入2,其他任意鍵退出")
 if choice=="1":
  id=input("輸入您的賬號")
  pw=input("輸入您的密碼")
  register(id,pw)
  break
 if choice=="2":
  id=input("輸入你注冊的賬號")
  logon(id)
  continue
 else:
  print("退出成功")
  sys.exit(0)

看完上述內(nèi)容,你們掌握利用python編寫一個登錄與注冊功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI