zoukankan      html  css  js  c++  java
  • pyhton学习,day1作业,用户名密码登录模块

    要求,通过用户名密码登录,登录错误3次,锁定用户名

     1 # coding=utf-8
     2 # Author: RyAn Bi
     3 
     4 import os, sys  #调用系统自己的库
     5 
     6 accounts_file = 'E:\homework\user.txt'  # 存放用户名密码的位置
     7 lock_file = 'E:\homework\lock.txt'  #存放锁定用户名的位置
     8 print('accounts_file:', accounts_file) 
     9 '''
    10 temp1 = open(accounts_file,'a') #a为加入
    11 temp1.write('bjb,123'+'
    ')
    12 temp1.close()  #写入用户名密码的功能,在登录的时候不用
    13 '''
    14 user = open(accounts_file, 'r') #r为只读
    15 # print('user:',user)
    16 account_list = user.readlines()  #逐行按分隔符阅读,readline是逐字节阅读
    17 # print('account_list:',account_list)
    18 user.close()   #读取用户名和密码到内存中
    19 
    20 user1 = open(lock_file, "r")   
    21 lock_list = user1.readlines()
    22 # print(lock_list)
    23 user1.close()  #读取被锁定的用户名到内存中
    24 loginSucess = False   #默认将loginSucess置为假
    25 while True:
    26     username = input('username:').strip()  #.strip是去除空格和
    
    27     lockid = 0        #锁定用户标识值为零,不锁定
    28     if len(username) != 0:      #假如用户名不为空
    29         for i in lock_list:
    30             # i = i.split(' ')   #i的分割符为空格
    31             # print(i)
    32             if username == i.strip():
    33                 print('your username %s is locked!' % username)
    34                 lockid = 1
    35                 break  # 判断该帐号是否被锁定
    36         for i in account_list:
    37             # print(i)
    38             if lockid == 1:  #被锁定了禁止执行
    39                 break
    40             else:
    41                 i = i.split(',')
    42                 # print(i)
    43                 if username == i[0]:
    44                     for x in range(3):
    45                         password = input('password:').strip()
    46                         if password == i[1].strip():  # 去掉空格和换行符
    47                             loginSucess = True
    48                             # print('you are right')
    49                             break   #验证3次密码,成功了置 loginsuccess 为真
    50                     else:
    51                         print('%s,you input wrong password 3 times,your %s is locked!' % (username, username))
    52                         l = open(lock_file, 'w') #w只允许写入,以写入方式打开locklist
    53                         if l != "":
    54                             l = open(lock_file, 'a') #假如是locklist中有内容,用添加方式打开locklist,避免空白行
    55                         l.write(username + '
    ') #将用户名写入
    56                         l.close()
    57                         lockid = 1
    58                         # view = open(lock_file)
    59                         # print(view.read())
    60         if loginSucess is True:
    61             print('welcome to system')
    62             break
    63         elif lockid == 0:
    64             print('you input a wrong username,pls input again')
    65         else:
    66             # print('%s,you input wrong password 3 times,your %s is locked!' % (username, username))
    67             break
    68     else:  # 用户名输入为空的时候
    69         continue
  • 相关阅读:
    nextSibling VS nextElementSibling
    线程实现连续启动停,并在某一时间段内运行
    线程:安全终止与重启
    监控知识体系
    后台服务变慢解决方案
    Java泛型类型擦除以及类型擦除带来的问题
    常见的 CSRF、XSS、sql注入、DDOS流量攻击
    Spring对象类型——单例和多例
    一次线上OOM过程的排查
    深入浅出理解基于 Kafka 和 ZooKeeper 的分布式消息队列
  • 原文地址:https://www.cnblogs.com/bbgoal/p/10237816.html
Copyright © 2011-2022 走看看