Python3模擬登錄操作實例分析

這篇文章主要介紹了Python3模擬登錄操作,結合實例形式分析了Python3模擬登陸驗證、判斷、文件讀寫等相關操作技巧,需要的朋友可以參考下

本文實例講述了Python3模擬登錄操作。分享給大家供大家參考,具體如下:

模擬登錄_要求:

1. 用戶輸入賬號密碼進行登錄
2. 用戶信息保存在文件內
3. 用戶密碼輸入錯誤三次後鎖定用戶

邏輯圖:

代碼:

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

用戶信息文件.txt

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

鎖定用戶信息文件.txt

['name']

更多關於Python相關內容可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧彙總》及《Python入門與進階經典教程

希望本文所述對大家Python程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章