一停做、要求:
- 輸入用戶名密碼
- 認證成功后顯示歡迎信息
- 輸錯三次后鎖定
二、程序流程圖
image.png
三悄谐、代碼
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: Jeff Zhu
import getpass
usr_info = [
["Zhang San","asdf123","Logout"], #每個元素是一個列表寒瓦,有3個子元素,分別是用戶名皆刺,密碼林说,狀態(tài)
["Li Si","dsaff1","Logout"], #狀態(tài)有三種 Login劣摇,Logout,Locked
["Wang Wu","123456","Logout"],
["Zhao Er Ma Zi","888888","Logout"],
]
wrong_times = 0
while True:
usr_name_input = input("請輸入用戶名>>>")
for i in range(len(usr_info)):
if usr_info[i][0] == usr_name_input:
usr_index = i
break
else:
usr_index = -1
if usr_index != -1: #用戶存在
if usr_info[usr_index][2] != "Locked": #判斷用戶是否被鎖定
while wrong_times < 3:
#usr_pwd_input = input("請輸入密碼>>>")
usr_pwd_input = getpass.getpass("請輸入密碼>>>") #提示用戶輸入密碼
if usr_pwd_input == usr_info[usr_index][1]:#密碼正確
print("%s,Wellcome!"%usr_info[usr_index][0])
usr_info[usr_index][2] = "Login"#狀態(tài)變更為Login
wrong_times = 0
break
else:#密碼錯誤
print("密碼錯,請重新輸入")
wrong_times += 1
else:
print("連續(xù)輸錯3次,賬戶被鎖定")
usr_info[usr_index][2] = "Locked"
wrong_times = 0
if usr_info[usr_index][2] == "Login":
break
else:
print("該賬戶已被鎖定")#提示用戶已被鎖定
else:
print("用戶不存在")#提示用戶名不存在