python1、2实践

一、实践需求

  输入用户名、密码

  认证成功的话显示欢迎信息

  如果输错三次的话锁定这个账号,再次登录这个账号的话就提示帐号已经被锁定,无法登录

  思路解析:如果将这个锁定的帐号存储在内存的话,重启机器之后信息就会被清除掉。重启之后在运行的话帐号就变成了可以再次登录的帐号了--将这个变量存储在硬盘当中,这样重启了还是会记住。

二、根据需求用Process On书写流程图

  python1、2实践

三、代码

# -*- coding:utf-8 -*-

# 登录三次锁定用户

# 用于计数(循环三次的判断)
count = 0

# 真实用户名和密码
real_username = "tanghouzi"
real_password = "1234577"

user_list = []
# 读取黑名单的内容
f = open('black_user', 'r')
lock_file = f.readlines()
for user in lock_file:
    user = user.strip('
')
    user_list.append(user)
f.close()
print(user_list)

username = input("请输入用户名:")

# 判断输入的用户名是否在黑名单内,如果在则不允许继续输入密码
for i in range(1):
    if username in user_list:
        print("对不起,您的用户名已锁定,暂时不允许使用!")
        exit()
    else:
        continue

# 尝试输入密码,并将输入次数进行计数
for i in range(3):
    password = input("请输入密码:")
    if password == real_password:
        print("登录成功!")
        break
    else:
        print("登录失败...")
    count += 1

# 如果错误密码输入了三次,则提示用户名锁定,并将用户名放入黑名单中
if count == 3:
    print("对不起,您输入的密码错误次数已达3次,将锁定您的账户!")
    f = open('black_user', 'a')
    f.write('%s' % username + '
')
    f.close()

 四、备注

  1、需要在同个文件当中新建一个命名为:black_user的文件表示黑名单文件

  2、python1、2实践python1、2实践

  3、如果是‘w’格式打开机不需要新建文件,如果是‘r’打开就需要先建文件。  

其实还可以加一个判断,如果这个文件存在,就用‘r’打开,如果不存在,就暂时不用操作,因为最后一步是用'w'打开,此时会创建文件。

  4、如果代码中的文件名称是black_user,则新建的文件也不能有后缀,需要命名成black_user即可。同理,如果新建的文件是black_user.txt的话,则代码中的文件也要写成black_user.txt

  5、报错科普

  python1、2实践

  原因:你的文件已经close了,但是你还在调用write写入