python用户登录程序_python——模拟一个简单的登录接口程序

一、功能要求

登录接口小程序(需实现的功能如下)

1、输入用户名和密码

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

3、输错三次后锁定

二、逻辑思路分析:

定义一个文件用于存储用户名和密码:passwd.db

定义一个文件用于记录输入3次错误后的用户名,以判断文件里的用户名来决定用户是否为锁定状态lock_user.db

定一个变量为3,用于输错密码最多次数count = 3

定一个变量为0,用于输错一次自动增加1inter=0

定义一个变量login_status作为标志位,默认值为login_status=False,为false的目地也就是说登录失败。如果用户登录成功后那么就赋值为True。

1、输入用户名和密码

2、输入用户名之后,检测账户是否是锁定,那么需打开lockfile文件,循环读取每一行的用户名,判断是否此用户已经存在lock文件里,如果用户存在,则提示用户已被锁定,且退出程序,如果账户名不存在lockfile文件里,则继续往下执行

3、打开userdbfile,循环读取每一行,且分割用户名和密码,分别存储在userdb、passwddb变量里。接着将输入的用户名和密码分别与这两个变量进行匹配,如果相等,则提示验证通过,且将标志位match_flag赋值为True,且终止循环。如果输入的密码是不正确的,那么标志位不变,也就还是为False。

4、接着判断标志位,如果为false,则说明没有匹配上,提示重试登录,且同时将count增1,如果不为false,也就是为true。则提示登录系统完成

三、代码#!/usr/bin/env python

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

#注册用户名和密码,数据写入在文件里

#输入用户和密码

#认证成功后显示欢迎信息

#输错三次后锁定

#!/usr/bin/env python

import shelve

#账户添加(可单独调用该函数执行即可)

def adduser(name,passwd):

files = shelve.open("passwd.db")

files[name] = passwd

files.close()

def check(name,passwd):

db = dict(shelve.open("passwd.db"))

lock = dict(shelve.open("lock_user.db"))

if lock.get(name,None) != None:

print '账户处于锁定状态,请与管理员联系'

return False

if db.get(name,None) == None:

print '用户名不存在'

return False

if passwd != db.get(name):

print '密码错误'

return False

else:

return True

if __name__ == '__main__':

inter = 0

count = 3

login_status = False

while inter < count:

name = raw_input('账号:')

passwd = raw_input('口令:')

if check(name,passwd) == True:

login_status = True

print '认证通过'

break

else:

inter += 1

print '还可尝试%s次登录' % (3 - inter)

continue

if login_status == False:

files = shelve.open("lock_user.db")

files[name] = name

files.close()

print '账户被锁定'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值