python函数登录验证_python初级之路-编写用户登陆验证

前言:

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 whileTrue: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 whileTrue: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函数说明:

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

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

file参数为文件名,

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值