用Python实现登录接口,允许尝试三次

项目需求描述:要求用户输入用户名和密码,认证成功后显示欢迎信息,如果连续输错三次则锁定用户名。

逻辑流程图:

实现代码:

#!/usr/bin/env python
import sys

account_file = ‘account.txt‘
lock_file = ‘lock.txt‘

# put accounts in a list
fh_account = open(account_file)
account_list = fh_account.readlines()
fh_account.close()

# initialize retry count as 3 for every account
retry_count = {}
for line in account_list:
    line = line.split()
    retry_count[line[0]] = 3

while True:
    # put locked accounts in a list
    fh_lock = open(lock_file)
    lock_list = []
    for i in fh_lock.readlines():
        line = i.strip(‘\n‘)
        lock_list.append(line)
    fh_lock.close()

    # handle the username and password empty issue
    username = raw_input(‘Username: ‘).strip()
    if len(username) == 0:
        print ‘\033[31;1mUsername should not be empty !\033[0m‘
        continue
    password = raw_input(‘Password: ‘).strip()
    if len(password) == 0:
        print ‘\033[31;1mPassword should not be empty !\033[0m‘
        continue

    # authentication part
    if username in lock_list:
        print "\033[31;1mSorry, ‘%s‘ is locked already !\033[0m" % username
        continue
    if not retry_count.has_key(username):   # inexistent account
        retry_count[username] = 3
    for line in account_list:
        line = line.split()
        if username == line[0] and password == line[1]: # authentication pass
            retry_count[username] = 3       # reset retry times for this account
            sys.exit(‘\033[32;1mWelcome %s login my system !\033[0m‘ % username)
    else:                                   # authentication failed
        print ‘\033[31;1mWrong username or password !\033[0m‘
        retry_count[username] -= 1
        if retry_count[username] > 0:
            print ‘\033[31;1mYou have %d more chances !\033[0m‘ % retry_count[username]
        else:
            fh = open(lock_file, ‘a‘)
            fh.write(‘%s\n‘ % username)
            fh.close()
            print "\033[31;1mSorry, ‘%s‘ is locked !\033[0m" % username
时间: 2024-08-08 18:20:03

用Python实现登录接口,允许尝试三次的相关文章

python编写登录接口(上)

中途经过了好几天都没有动手了,得坚持下去啊刚看了Alex老师的视频,其中有个题目如下:编写登录接口-输入用户密码-认证成功后显示欢迎信息-输错三次后锁定 # -*- coding: cp936 -*-#用户名保存在一个文件名为user.txt文件中import os,stringtmp=file('C:\Users\hityxg\Desktop\user.txt')username=file('C:\Users\hityxg\Desktop\username.txt','w')b=tmp.rea

python编写登录接口

python编写登录接口 一.需求 编写登录接口: 1.输入用户名和密码登录 2.输错三次锁定账户 3.下次登录还是上次的账户,提示锁定,直接退出(用到文件读写) 4.成功 后显示登录成功 二.需求流程图 三.代码示例 例1: #!/bin/bash/env python #_*_ coding:utf-8 _*_ #python version:3.6 ''' 编写登录接口:     1.输入用户名和密码登录     2.输错三次锁定账户     3.下次登录还是上次的账户,提示锁定,直接退出

python学习---登录接口

开发环境: OS:64位Windows 7 IDE:pycharm4.0.4 python版本:2.7.10 程序简述: a.本登录接口实现的功能为对登录的用户名进行判断,对与存在locklist列表中的用户禁止访问 b.对连续输错三次密码的账号进行锁定,后续再使用该账户登录时提醒账号被锁定 c.可以正常登陆的用户名与密码均提前写好在namelist.txt文件中,如需额外增加合法用户,只需在namelist.txt文件中增加即可 d.locklist.txt与namelist.txt均是纯文本

Python 编写登录接口

思路一: # coding:utf-8 """ 登录接口: -输入用户名和密码 -认证成功后显示欢迎信息 -输错三次后锁定 """ import sys,os i = 0 while i < 3: name = raw_input('请输入用户名:') with open('D:/account_lock.txt','r+') as f: lock_list = f.readlines() for lock_user in lock_lis

python编写登录接口(第一天)

作业:编写登录接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 针对此实例书写内容具体如下: 账户文件account.txt内容如下: Tamir 123 test1 123 test2 123 test3 123 账户锁定文件account_lock.txt默认为空 针对账号文件(account.txt)里的用户进行判断并锁定,针对用户和密码各有三次错误重试机会. 1.流程图如下: 代码如下: 1 # -*- coding:utf-8 -*- 2 # Author:Steven K

【阶段性成果1】Python编写登录接口(要求:认证成功后显示欢迎信息;输错三次后该用户锁定)

注:信息需要以如下形式储存: 用户名 密码 用户名2 密码2 相关知识点: #w 只能操作写入 r 只能读取 a 向文件追加 #w+ 可读可写 r+可读可写 a+可读可追加 #wb+写入进制数据 #w模式打开文件,如果而文件中有数据,再次写入内容,会把原来的覆盖掉 #read(int)函数, 读取文件内容.如果指定读取长度,会按照长度去读取,不指定默认读取所有数据 #readline(int)函数 默认读取文件一行数据 #readlines() 会把每一行的数据作为一个元素放在列表中返回,读取所

用Python编写登录接口

登陆接口要求: 输入用户名和密码 认证成功后显示欢迎信息 输错三次后锁定 代码: 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:James Tao 4 5 import pickle 6 import os 7 8 #注册 9 register={'tz':'1234','t':'123','tza':'12345abc'} 10 locked_account=[] 11 12 #也可由用户输入注册账号 13 #regis

Python实现登录接口

要求: 输入用户名和密码 认证成功,显示欢迎信息 用户名3次输入错误后,退出程序 密码3次输入错误后,锁定用户名 Readme: UserList.txt 是存放用户名和密码的文件,格式为:username: password,每行存放一条用户信息 LockList.txt 是存放已被锁定用户名的文件,默认为空 用户输入用户名,程序首先查询锁定名单 LockList.txt,如果用户名在里面,提示用户被锁定,并退出程序 如果用户名不在锁定名单里,程序将查询用户名单 UserList.txt ,如

python练习之编写登录接口

一.需求 编写一个登录接口,要求如下: 不管是输错密码或者用户名,都被视为一次尝试 当输入用户名或者密码错误时,输出错误提示 尝试过三次后,被锁定 二.代码 #!/usr/bin/env python #_*_coding:utf-8_*_ try_time = 0 while try_time < 3:     user = raw_input("input the username:")     if user == 'mangguo': #当用户名正确后,再提示输入密码