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

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

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

暂时想到了解决办法是在一个专用的文件里面增加一个专用的计数变量,舍弃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实现简单登陆系统相关推荐

  1. python加载图片的方法_python从网络读取图片并直接进行处理的方法

    python从网络读取图片并直接进行处理的方法 更新时间:2015年05月22日 10:09:08 作者:pythoner 这篇文章主要介绍了python从网络读取图片并直接进行处理的方法,涉及cSt ...

  2. vscode怎么配置python运行环境f5_VSCode下配置python调试运行环境的方法_python

    这篇文章主要介绍了VSCode下配置python调试运行环境的方法,需要的朋友可以参考下 VSCode配置python调试环境 很久之前的一个东东,翻出来看看VSCode配置python调试环境 * ...

  3. python定义私有变量的方法_Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  4. python编程超市购物系统_python实现简单购物车系统(练习)

    #!Anaconda/anaconda/python#coding: utf-8 #列表练习,实现简单购物车系统 product_lists= [('iphone',5000), ('computer ...

  5. python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...

    python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...

  6. python七夕快乐_python编写简单抽奖系统

    python编写简单抽奖系统 #!/usr/bin/env python #coding=utf-8 from Tkinter import * import time import random c ...

  7. python中列表的sort方法_python中列表的sort方法使用详解

    内容简介:python中列表的sort方法使用详解 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. 排序,数字.字符 ...

  8. python导入pandas具体步骤方法_python导入pandas具体步骤方法

    Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持. Pandas的名称来自于面板数据(panel data)和python数据分析(data anal ...

  9. python爬虫十二种方法_Python爬虫的N种姿势

    问题的由来 前几天,在微信公众号(Python爬虫及算法)上有个人问了笔者一个问题,如何利用爬虫来实现如下的需求,需要爬取的网页如下(网址为:https://www.wikidata.org/w/in ...

最新文章

  1. SpringBoot + Elasticsearch7.6实现简单查询及高亮分词查询
  2. Linux疑难杂症解决方案100篇(四)-SHELL编程预留题目解析
  3. 《HTML5触摸界面设计与开发》——导读
  4. 【Java】 大话数据结构(13) 查找算法(4) (散列表(哈希表))
  5. 强烈推荐的TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)
  6. redhat enterprise linux 5 上安装openoffice3.0 1
  7. 超详细windows安装mongo数据库、注册为服务并添加环境变量
  8. mybatis 不生效 参数_Mybatis-日志配置
  9. wamserver怎么把mysql找回来_将php连接wampserver自带的MySQL数据库 所遇到各种问题解决办法...
  10. 【Flink】Rowtime timestamp is null. Please make sure that a proper TimestampAssigner is defined and th
  11. less知识点总结(二)
  12. js 跨域深入理解与解决方法
  13. 如何分析解读systemstat dump产生的trc文件
  14. 从0开始,使用豆瓣数据集做一个基于FM和逻辑回归的电影推荐系统
  15. Hello Qt(十三)——QT信号与槽机制
  16. 学python看谁的视频比较好-python学习视频好的有哪些
  17. MySQL随机生成customers表姓名,密码,性别,出生日期,电话,邮箱,收货地址,客户等级创建账号时间(function函数)
  18. android 六边形简书,六边形RecyclerView
  19. python wilcoxon test_自动化框架之 python+selenium+pytest · TesterHome
  20. Python NLP入门教程

热门文章

  1. mysql数据库deptno_mysql数据库的 select查询
  2. python dataframe 取每行的最大值,在python数据框中的每一行中查找最大值
  3. java 验证码_如何使用Java生成随机验证码
  4. 单片机c语言三种经典程序结构,单片机C语言程序的结构和设计精选.docx
  5. 判断玫瑰花数c语言程序设计教程课后答案,编写程序判断某个四位整数是否为玫瑰花数(用自定义函数)...
  6. 计算机网络之物理层:7、物理层设备(中继器、集线器)
  7. (王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题
  8. 字符串经典题之参数解析
  9. 6-3-2:STL之vector——vector的模拟实现
  10. PyQt5学习笔记05----Qt Designer信号槽