Day1 Python-编写登陆认证程序

Day1 Python-编写登陆认证程序

编写登陆认证程序

基础需求

让用户输入用户名密码

认证成功后显示欢迎信息

输错三次后退出程序

升级需求

可以支持多个用户登录 (提示,通过列表存多个账户信息)

用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

思路:

1、基本需求通过一个while循环就可以解决,每次输入错误count+1,count<3就结束。

2、升级需求,若去掉“再次启动程序尝试登录时,还是锁定状态”的话,可以通过列表嵌套列表来实现,支持多个用户登录。

3、支持多用户且有账户锁定状态,可以将账户信息和锁定状态存入文件中,登陆验证时再把文件读出来进行对比,若锁定则无法登陆,若账户未锁定且密码正确就登陆成功。

4、文件名称可以以账户名称来命名,文件存储格式可以如下

['wllen', '123456', 1]  # 第一个值为用户名,第二个值为用户密码,第三个值为账户锁定状态,暂定1可以登陆,0为锁定  

 代码如下:

 1 #!/usr/bin/env python
 2 # -*- coding=utf-8 -*-
 3 """
 4 @author:Wllen
 5 @file:account.py
 6 @time:2018/5/29 11:45
 7 """
 8 import os
 9 count = 0
10 user_input = []  # 用来存储每次输入的用户名,为后面判断三次输入同一个用户名锁定用户做准备
11 while count < 3:  # 密码错误时循环三次
12     username = input('请输入您的用户名:').strip()
13     userpasswd = input('请输入您的密码:').strip()
14     account_file = "db/%s" % username
15     if os.path.isfile(account_file):  # 导入系统模块,判断输入username名称的文件是否存在
16         f = open(account_file,'r', encoding='utf-8')
17         account = eval(f.read())  # 文件存储的就是列表格式,读取的时候时字符串,需要转换成原来的格式
18         f.close()
19         if account[2] == 1:  # 判断用户是否是锁定状态,0为锁定
20             if username == account[0] and userpasswd == account[1]:
21                 print("欢迎%s来到Python的世界!"% username)
22                 break
23             else:
24                 count += 1
25                 user_input.append(username)
26                 print("您的账号或密码错误,请重新输入!剩余次数%s" % (3 - count))
27         else:
28             print('用户名%s已被锁定,请联系管理员处理!'% username)
29     else:
30         print("没有此用户,联系管理员创建!")
31 
32 if user_input[0] == user_input[1] and user_input[1] == user_input[2]: 33 account[2] = 0 34 with open("db/%s"% user_input[0], 'w', encoding='utf-8') as f: 35 f.write(str(account)) 36 print('用户%s已经被锁定!'% user_input[0])

 

posted @ 2018-05-15 11:30 Wllen 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值