当前位置: 澳门新濠3559 > 编程 > 正文

输入用户名进行用户名认证,【嵌牛正文】

时间:2019-12-08 22:39来源:编程
#基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息输错三次后退出程序  升级需求: 可以支持多个用户登录(提示,通过列表存多个账户信息)用户3次认证失败后,退出程序,

#基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序  升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次#启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

姓名:李海洋              学号:16180210040

程序要求:

file = open('login.txt','r+')
user = [['zhangsan','1234'],[输入用户名进行用户名认证,【嵌牛正文】。'lisi','1234'],['alex','1234']]
data = []
for i in file:
  data = (i.strip('n').split(','))
count = 0
while count < 3:
    username = input("用户名:").strip()
    if username in data:
      print("用户已被锁定!")
      break
    password = input("密码:").strip()
    for k in user:
     if username == k[0] and password == k[1]:
      print("welcome %s" % (k[0]))
      exit()
    else:
     print("密码输入错误!n")
    count += 1
if count == 3:
   print("密码输入上限,用户已锁定!")
   data.append(username)
for k in data:
     file.write(k)
     file.write(",")
file.close()

转载自:www.my398.com/html/python/3079.html      有删节。

输入用户名进行用户名认证,如果用户名在黑名单则提示用户已经被锁定,如果输入用户名没在黑名单则进行

【嵌牛导读】:本文实例为大家分享了Python编写登陆接口的具体代码,供大家参考

密码认证,认证成功后显示欢迎信息,如果输入错误三次后锁定用户。

【嵌牛鼻子】:python 

解决方案:

【嵌牛提问】:如何用python编写登录接口?

1、明确可成功登录的用户名和密码;

【嵌牛正文】:

2、用户黑名单,三次登录失败后,将用户名写入黑名单;

1.输入用户名密码;

3、检测黑名单的内容,如果与当前登录名一致,则不允许继续输入密码,直接提示用户已锁定。

2.认证成功后显示欢迎信息;


3.错误三次后,账号被锁定。

#!/usr/bin/env python

账号文件:user.txt

# -*- coding:utf-8 -*-

锁定文件:locked.txt

# Author:Huajia

流程图如下:

# 模拟用户登录

澳门新濠3559 1

f1 = open("user_loack.txt","r+",encoding="utf-8")  # 打开用户锁定文件

# -*- coding:utf-8 -*-

f2 = open("username.txt","r+",encoding="utf-8")    # 打开存用户名密码文件

# Author Caoxl

count = 0

import sys

list = []

account_file='E:user.txt'

# 读取文件内容并把每行的n去掉然后加入到list这个空列表

locked_file='E:locked.txt'

for lock_list in f1.readlines():

def deny_account(username):

    list.append(lock_list.strip())

print('您的用户已被锁定')

print(list)

with file(locked_file,'a') as deny_f:

f1.close()

deny_f.write('n'+username)

for i in range(3):  # 进入大循环,用户名错误3次自动退出系统。

def main():

    user_name = input("请输入用户名:")

retry_count=0

    if user_name in list: #  判断输入的用户名是否在list列表里面

retry_limit=3        #循环次数

        print("用户名33[31;1m %s 33[0m已经被锁定,请联系管理员!" %(user_name))

while retry_count

        continue  # 提示完用户被锁定继续进行下面程序的执行

username=raw_input('请输入您的用户名:') #引导用户输入用户名

    for j in f2.readlines(): # 从f2这个文件里面取用户名密码

with file(locked_file,'r') as lock_f:

        user,passwd = j.strip("n").split()  # 去掉每行多余的n并把这一行按空格分成两列,分别赋值为user,passwd两个变量

#采用with打开方式,将locked_file赋值lock_f,防止忘记f.close()关闭文件

        p = 0

for line in lock_f.readlines():  #循环遍历每一行的内容

        if user == user_name: # 判断用户是否在文件F2中,如果存在输入密码登录系统,如果不存在则输出提示“用户名不正确”

if len(line)==0:    #对每一行内容进行处理

            while p < 3:  # 循环判断密码输入错误3次锁定该用户

continue

                password = input("请输入密码:") # 输入密码

if username == line.strip():

                if passwd == password:  # 判断密码是否正确,如果正确提示登录成功,如果不正确则提示“密码错误,重新输入”。注:错误3次,锁定用户

#利用.strip这个函数去掉换行符,来对username进行匹配。

                    print("用户名密码正确,登录成功!!")

sys.exit('用户已经被锁定!')

                    exit()

if len(username)==0:  #提示用户登录时,用户名不能为空!

                elif passwd != password:

print('用户名不能为空,请重新输入')

                    print("密码错误,请重新输入!")

continue

                    p += 1

password= raw_input('请输入您的密码:') #引导用户输入密码

            else:

with file(account_file,'r') as account_f:

                print("密码已经输错3次,用户 33[31;1m %s 33[0m 被锁定,请联系管理员解锁用户!"%(user_name))

flag= False

                f1 = open("user_loack.txt","a",encoding="utf-8") # 打开F1这个文件,将锁定的用户名写入锁定文件。

for line in account_f.readlines():

                user_name = "%sn" %(user_name)

user,pawd=line.strip().split()  #将用户名和对应密码进行处理

                f1.write(user_name)

if username==user and password==pawd: #判断用户名和密码

            exit()

print('success!')

    else:

flag=True

        print("你输入的用户名 澳门新濠3559,033[31;1m %s 33[0m 不存在,请重新输入!"%(user_name))

break      #退出for循环

else:

if flag==False:      #避免用户在三次输入后,依然提示重新输入。

    print("用户名三次错误,自动退出程序!")

if retry_count<2:

print('您输入的用户名或密码有误,请重新输入!')

retry_count+=1

else:

print('欢迎用户登陆成功!!')

break

# 加标志位是为了用户能够成功推出整个循环!

deny_account(username)

#对应上面的def函数把锁定账号加入文档中去

if __name__ == '__main__':

main()

以上就是本文的全部内容,希望对大家的学习有所帮助

编辑:编程 本文来源:输入用户名进行用户名认证,【嵌牛正文】

关键词: