Python之登錄接口


作業:編寫登陸接口

  • 輸入用戶名密碼
  • 認證成功后顯示歡迎信息
  • 輸錯三次后鎖定

1、流程圖

 

 

 

 

 

 

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、解鎖賬號

賬號被鎖定后,執行解鎖腳本代碼即可。

 

# -*- coding:utf-8 -*-
# version:python3.5

import pickle
# 初始化用戶以及密碼
user_dict = {'admin':{'passwd':'admin','flag':'unlock'}}

# 把賬號、密碼保存到文件中
with open('account.pkl','wb') as f:
    pickle.dump(user_dict, f)

  

 

3、登錄接口,有選擇猜數字游戲選項

輸入正確賬號密碼后,可以選擇玩猜數字游戲。猜數字游戲由系統隨機生成一個1到10的數字,有3次機會猜數字。

 

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Version:python3.5.0
import  pickle
import os
import random

with open('account.pkl','rb') as f:  # 載入用戶賬戶密碼信息
    user_dict = pickle.load(f)

exit_flag = False   #初始化鎖定的狀態為false
count_lock = 0  # 初始化賬號鎖定次數為0次

print('**********************************')
while True:
    user = input('請輸入賬號: ').strip()
    if user == '':continue  # 用戶名為空,重新輸入
    passwd = input('請輸入密碼: ').strip()

    # 判斷是否存在輸入的賬號
    if user_dict.get(user):
        # 判斷賬號是否鎖定,鎖定則退出。
        if user_dict[user]['flag'] == 'lock':
            print('賬號已經鎖定,請解鎖!')
            break
        # 驗證密碼是否正確
        if user_dict[user]['passwd'] == passwd:
            while True:
                guess_choise = input('你要開始玩猜數字游戲么?(選擇yes或no): ').strip()
                if guess_choise == '':continue
                elif guess_choise == 'yes':
                    print('歡迎登陸Python自動化開發--猜數字系統')
                    print('*******************************************')
                    print('猜數字的范圍在1到10之間.')
                    real_num = random.randrange(1,11)   # 隨機生成1到10之間的一個數字
                    retry_count = 0
                    while retry_count < 3:  # 有3次機會猜數字
                        guess_num = input('請輸入你猜的數字: ').strip()
                        if guess_num == '':continue
                        if guess_num.isdigit():
                            guess_num = int(guess_num )
                            if guess_num > real_num :
                                print('錯誤,請輸入一個小一點的數字!')
                            elif guess_num < real_num :
                                print('錯誤,請輸入一個大一點的數字!')
                            else:
                                print('恭喜你,猜到你幸運的數字 %s !!!' % real_num)
                                break
                        else:
                            print('輸入的不是數字,請重新輸入一個數字')
                            continue

                        retry_count +=1
                    else:
                        print('哦哦,幸運數字是 %s,下次肯定會猜中的哦!' % real_num)
                        print('-------------------------------------')

                elif guess_choise == 'no': # 不想猜數字游戲,則直接退出系統
                    print('歡迎再次登錄!')
                    exit_flag = True
                    break
                else:
                    print('你輸入的不是yes或者no,請重新輸入。')
                    continue
        else:
            count_lock += 1 # 密碼不正確,統計輸錯次數
            if (3 - count_lock):
                print('賬號或密碼錯誤,還有 %s 次機會嘗試登陸!' % (3-count_lock))

        if count_lock == 3:   # 若鎖定次數有3次,就鎖定賬號
            with open('account.pkl','wb') as f:
                user_dict['admin']['flag'] = 'lock'     # 標志賬號admin為鎖定狀態
                user_dict = pickle.dump(user_dict, f)   # 修改后數據寫到 account.pkl中
            print('*******************************************')
            print('賬號被鎖定,請解鎖!')
            break
    else:
        print('輸入的賬號不存在,請重新輸入!')
        continue

    if exit_flag:   # 在猜數字游戲中,選擇no,則直接退出整個程序
        break

print('Bye bye!')

  

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM