溫馨提示×

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

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

Python3中怎么實(shí)現(xiàn)模擬登錄操作

發(fā)布時(shí)間:2021-06-16 17:32:55 來(lái)源:億速云 閱讀:176 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

Python3中怎么實(shí)現(xiàn)模擬登錄操作,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

模擬登錄_要求:

1. 用戶(hù)輸入賬號(hào)密碼進(jìn)行登錄
2. 用戶(hù)信息保存在文件內(nèi)
3. 用戶(hù)密碼輸入錯(cuò)誤三次后鎖定用戶(hù)

邏輯圖:

Python3中怎么實(shí)現(xiàn)模擬登錄操作

代碼:

#!/usr/bin/env python3
# Author:Robert
# --*-- coding: utf-8 --*--
count = 0  #記錄試錯(cuò)次數(shù),計(jì)數(shù)項(xiàng)賦初始值
load = True  #完成功能后退出,賦初始值
file = open("用戶(hù)信息文件.txt",'r',encoding='utf-8')
file_lock = open("鎖定用戶(hù)信息文件.txt",'r+',encoding='utf-8')
line = eval(file.readline())  #將正確信息中的字符串轉(zhuǎn)換成字典(原字符串為字典格式)
line_list = eval(file_lock.readline())  #將正確信息中的字符串轉(zhuǎn)換成列表(原字符串為列表格式)
def out():  #定義重復(fù)代碼,目的是幫助跳出while循環(huán)并關(guān)閉已打開(kāi)的文檔
  global load
  load = False  #賦值load,為了跳出while循環(huán)
  file_lock.close()  #關(guān)閉正確用戶(hù)信息文檔
  file.close()  #關(guān)閉鎖定用戶(hù)信息文檔
while load:  #判斷是否已完成功能
  name = input("請(qǐng)輸入用戶(hù)名:")
  password = input("請(qǐng)輸入密碼:")
  if name in line and name not in line_list:  #判斷用戶(hù)名是否正確,是否已被鎖定
    while count < 3:
      if password == line[name]:  #判斷用戶(hù)名是否對(duì)應(yīng)正確的密碼
        print("您已成功登錄")
        out()  #調(diào)用定義out方法
        break
      else:  #說(shuō)明未輸入的正確的密碼
        count +=1
        msg_count = '第%s次密碼輸入錯(cuò)誤\n'%(count)  #提示輸入錯(cuò)誤次數(shù)
        print(msg_count)
        if count < 3:  #小于三次錯(cuò)誤的輸入,可以重新輸入
          password = input("密碼錯(cuò)誤,請(qǐng)重新輸入密碼:")  #重新輸入密碼
        elif count == 3:  #判斷是否已輸錯(cuò)三次
          print("已輸錯(cuò)3次,賬號(hào)已鎖定")
          line_list.append(name)  #將已鎖定信息加入鎖定元組中
          file_lock.seek(0)  #輸入指針移到開(kāi)頭,如果不移動(dòng)會(huì)產(chǎn)生多個(gè)元組
          file_lock.write(str(line_list))  #寫(xiě)入鎖定信息
          file_lock.tell()  #獲取當(dāng)前的輸入指針位置,如果不獲取會(huì)產(chǎn)生多個(gè)元組
          out()
          break
  elif name in line_list:  #判斷用戶(hù)名是否在已鎖定用戶(hù)名中
    print("該用戶(hù)名已被鎖定")
    out()
    break
  else:  #說(shuō)明用戶(hù)名不在正確用戶(hù)名信息中
    print("該用戶(hù)名不存在")
    out()

用戶(hù)信息文件.txt

{"name":"password","XiaoMing":"123456","Robert":"234567","Alex":"345678","haha":"123","hahage":"123","hahage2":"123","hahage3":"123"}

鎖定用戶(hù)信息文件.txt

['name']

關(guān)于Python3中怎么實(shí)現(xiàn)模擬登錄操作問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

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

AI