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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
Python字符串切片操作知识详解
Mar 28 Python
Python处理Excel文件实例代码
Jun 20 Python
详解django三种文件下载方式
Apr 06 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
基于树莓派的语音对话机器人
Jun 17 Python
python 字段拆分详解
Dec 17 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
Python无损压缩图片的示例代码
Aug 06 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
Python学习之时间包使用教程详解
Mar 21 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聊天室技术
2006/10/09 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
解释&&和||在javascript中的另类用法
2014/07/28 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
详谈python read readline readlines的区别
2017/09/22 Python
python求质数的3种方法
2018/09/28 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python 字符串追加实例
2019/07/20 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
Python爬虫与反爬虫大战
2020/07/30 Python
降低python版本的操作方法
2020/09/11 Python
python 爬取小说并下载的示例
2020/12/07 Python
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
平面设计岗位职责
2013/12/14 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
电子商务专业求职信
2014/03/08 职场文书
研发工程师岗位职责
2014/04/28 职场文书
拖欠货款起诉状
2015/05/20 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript