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生成随机数的方法
Jan 14 Python
Python基本数据类型详细介绍
Mar 11 Python
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
Python实现list反转实例汇总
Nov 11 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
详解Python发送邮件实例
Jan 10 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
python中的常量和变量代码详解
Jul 25 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
python中time库的实例使用方法
Oct 31 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
Python bisect模块原理及常见实例
Jun 17 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获取用户浏览器版本的方法
2015/01/03 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php strftime函数的详细用法
2018/06/21 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
javascript一些不错的函数脚本代码
2008/09/10 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
完善的jquery处理机制
2016/02/21 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
django定期执行任务(实例讲解)
2017/11/03 Python
python把转列表为集合的方法
2019/06/28 Python
python同时替换多个字符串方法示例
2019/09/17 Python
python无序链表删除重复项的方法
2020/01/17 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
观看信仰心得体会
2014/09/04 职场文书
小学班主任个人总结
2015/03/03 职场文书
实习单位鉴定意见
2015/06/04 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
mysql知识点整理
2021/04/05 MySQL
浅谈Python基础之列表那些事儿
2021/05/11 Python
Vue.Draggable实现交换位置
2022/04/07 Vue.js
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android