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比较2个xml内容的方法
May 11 Python
Python实现股市信息下载的方法
Jun 15 Python
python更新列表的方法
Jul 28 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
python实现扫描日志关键字的示例
Apr 28 Python
在python中使用with打开多个文件的方法
Jan 07 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
连接pandas以及数组转pandas的方法
Jun 28 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
Python 图片处理库exifread详解
2021/02/25 Python
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
商场消防安全责任书
2014/07/29 职场文书
踏青活动策划方案
2014/08/19 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
计划生育工作总结2015
2015/04/03 职场文书
《花钟》教学反思
2016/02/17 职场文书
2019银行竞聘书
2019/06/21 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书