前言:

        1、用户输入账户和密码

        2、认证成功后打印欢迎信息

        3、密码输入三次错误锁定用户

 

思路:

        通过将用户名和密码用字典保存在变量user_dic中,并将用户名以列表的形式保存到变量user_list,变量black_list以列表形式将黑名单文件black_user.log中黑名单用户进行储存,然后对用户输入的用户名进行判断,如果用户名为在黑名单black_list列表中,则提示用户输入的用户名已经被禁用,并退出程序;如果用户名不为黑名单用户且不存在user_dic列表中时,提示用户重新输入;如果用户输入的用户名在user_dic列表中时,则提示用户输入密码。

        验证用户输入的密码,如果密码错误,则提示用户重新输入,连续三次输错密码将该用户禁用并保存在黑名单文件black_user.log中;如果密码验证成功,打印欢迎信息。

 

实现代码:

1 #!/usr/bin/env python3
 2 # -*- coding: utf-8 -*-
 3 
 4 black_list = []    # 定义一个黑名单列表,将black_user.log文件中的黑名单用户保存到列表
 5 luck_num = 0    # 密码输入次数计数初始为0,累计三次输错将用户拉黑
 6 user_dic = {'lanten': '12345', 'gaotong': 'gt12345', 'tom': '147258', 'bigban': 'bigban123', 'angel': '34&67'}    # 定义一个用户名密码字典
 7 user_list = list(user_dic.keys())    # 将用户名以列表的形式显示出来
 8 
 9 f = open('black_user.log', 'r')     # 以只读方式打开黑名单文件black_user.log
10 
11 for line in f.readlines():    # 循环黑名单用户
12     line = line.strip()    # 移除用户名头尾空格
13     black_list.append(line)    # 将黑名单用户写入black_list列表
14 
15 f.close()
16 
17 while True:
18     user = input("请输入用户名:").strip()    # 让用户输入用户名,并去掉头尾的空格
19     if user in black_list:     # 判断输入的用户名是否为黑名单用户
20         print('此用户已经被禁用,请尝试其他用户')
21         break
22     elif user not in user_list:    # 判断用户输入是否存在user_list列表
23         print("您输入的用户名不存在,请重新输入!")
24     else:    # 如果用户输入正确的用户名后执行
25         while True:
26             password = input("请输入用户密码:").strip()    # 让用户输入密码,,并去掉头尾的空格
27             if password != user_dic[user]:    # 判断输入的密码如果与用户名对应的不一致,则提示用户重新输入,并累计超过三次输入错误后,将该用户加入黑名单文件
28                 print("密码输入错误,请重新输入")
29                 luck_num += 1
30                 if luck_num >= 3:
31                     f2 = open("black_user.log", "a")    # 以追加方式打开黑名单文件black_user.log
32                     f2.write(user + '\n')
33                     f2.close()
34                     print("该账户连续三次输入错误密码,%s用户已被禁用,请联系客服:10086" % user)
35                     quit()    # 退出整个程序
36             else:    # 如果用户输入的密码与用户名列表中对应的一致,则提示验证成功
37                 print("恭喜你,验证成功")
38                 quit()

 

代码实现效果:

python用户登录验证小朱同学 python编写一个登录验证程序_字符串

python用户登录验证小朱同学 python编写一个登录验证程序_python用户登录验证小朱同学_02

 

python用户登录验证小朱同学 python编写一个登录验证程序_字符串_03

 

python函数说明:

        list():将参数转换成以列表的方式显示,例如:list('abcd')  >>> ['a', 'b', 'c', 'd']

 

        open(file, mode='r'):用于打开一个文件,并返回文件对象。

                file参数为文件名,

                mode: 可选,文件打开模式,r表示只读,w表示只写,a表示追加。

 

        input():接受一个标准输入数据,返回为 string 类型。

 

        strip():用于移除字符串头尾指定的字符(默认为空格)或字符序列,只能删除字符串头尾的字符。

 

        quit():用于退出整个程序。