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 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
在Python中操作日期和时间之gmtime()方法的使用
May 22 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
Jun 24 Python
python实现TF-IDF算法解析
Jan 02 Python
python实现kmp算法的实例代码
Apr 03 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
Python的in,is和id函数代码实例
Apr 18 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
python 递归相关知识总结
Mar 03 Python
Python基础之元组与文件知识总结
May 19 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 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 操作调试的方法
2012/07/12 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
PHP序列化操作方法分析
2016/09/28 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
浅谈Python中的bs4基础
2018/10/21 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
实例详解Python装饰器与闭包
2019/07/29 Python
python中round函数保留两位小数的方法
2020/12/04 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
课堂教学改革实施方案
2014/03/17 职场文书
财务部绩效考核方案
2014/05/04 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
骨干教师事迹材料
2014/12/17 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL