python实现简单登陆系统


Posted in Python onOctober 18, 2018

新手,虽然比较简单的东西,但是弄了我很久。

很多不完善的地方,比如锁定用户,同一用户输入错三次密码就会锁定,但是如果在第二第三次换了用户再输入原来的用户,则计数会重新计算。

另外不存在的用户输入密码错误次数过多也会被锁定,然后还能创建一个被锁定的用户,这个就不搞了,只要检测一下是否存在用户名就可以了。

暂时想到了解决办法是在一个专用的文件里面增加一个专用的计数变量,舍弃blocklist这个文件,但是不懂怎么操作,先留着。

虽然python没有像C一样的main函数作为程序入口,姑且弄了一个,方便看懂

'''登陆系统
要求:
1、可以选择创建新的用户
2、可以登陆原有的用户
3、输入密码错误三次后用户则被锁定'''
 
flag=True #循环控制符
 
def createuser():
  f=open('userlist.txt','r')#打开已存在用户的文件,假设文件已经存在
  flag=True
  name=f.readlines()
  f.close()
  while flag:
    username=input('username:')
    flag2=False#用户名已存在的标记符
    for line in name:
      if(username==line.split('*')[0]):
        flag2=True
        print("用户名已存在,请重新输入")
    if flag2!=True:
      f=open('userlist.txt','a')#创建新的用户
      f.write('\n'+username)
      f.write('*')
      password=input('password:')
      f.write(password)
      f.close()
      break
  main()
 
 
def login():#登入函数,输入密码错误三次则锁定用户
  count=0#密码错误计数,3次则锁定
  f=open('userlist.txt','r')
  info=f.readlines()
  f.close()
  user=None#重复用户标记符
  while flag:
    flag2=False
    f2=open('blocklist.txt', 'r')
    block_name=f2.readlines()
    f2.close()
    username=input('username:')
    if user==None:#user没有使用过,则直接赋予输入的用户名
      user=username
    elif user!=username:#如果下一次输入的用户名不一样,则记录上一次的用户名,同时计数清零
      user=username
      count=0;
    for line in block_name:#检查用户名是否被锁定,锁定则返回主菜单
      if username==line.strip('\n'):
        print('该用户已经被锁定,请联系管理员')
        main()
    password=input('password:')
    for line in info:
      if(username==line.split('*')[0]and password==line.split('*')[1].strip('\n')):
        print('登入成功!')
        flag2=True
    if flag2==False:
      count+=1
      print("用户名或密码错误,请重新输入")
    if count==3:#错误三次,把用户名添加到锁定列表中
      print('密码错误次数过多,该用户已被锁定')
      f3=open('blocklist.txt','a')
      f3.write('\n'+username)
      f3.close()
      count=0#加入黑名单后重置计数
      main()#加入黑名单后退回主菜单
info='''
------请输入相关数字-----
1.创建新的用户
2.登陆已有用户
3.退出程序
'''
 
def main():
  print(info)
  while flag:
    i=input()
    if i=='1':
      createuser()
      break
    elif i=='2':
      login()
      break
    elif i=='3':
      exit()
    else:
      print("请输入正确的数字.")
 
main()#程序入口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
简单介绍Python中的round()方法
May 15 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
Tensorflow简单验证码识别应用
May 25 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
Django model update的多种用法介绍
Mar 28 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
python判断无向图环是否存在的示例
Nov 22 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 #Python
python字典值排序并取出前n个key值的方法
Oct 17 #Python
Python中创建二维数组
Oct 17 #Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 #Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 #Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 #Python
使用Python实现在Windows下安装Django
Oct 17 #Python
You might like
php多用户读写文件冲突的解决办法
2013/11/06 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
一段多浏览器的"复制到剪贴板"javascript代码
2007/03/27 Javascript
jquery text()要注意啦
2009/10/30 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
详解如何较好的使用js
2016/12/16 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
JavaScript学习笔记之惰性函数示例详解
2017/08/27 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
.NET remoting中对象激活的两种方式
2015/06/08 面试题
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
司机岗位职责说明书
2014/07/29 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
社区植树节活动总结
2015/02/06 职场文书
公司门卫岗位职责
2015/04/13 职场文书
运动会主持人开幕词
2016/03/04 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
Redis+AOP+自定义注解实现限流
2022/06/28 Redis