练习:读取txt中的用户名和密码,使用input输入用户名和密码,判断是否一致,一致则输出”登陆成功!“,不一致则输出“账号名或密码错误”,不一致次数达到5次以上输出“账号已锁定”
分析:用with读取文件,使用for循环遍历账户和密码,一致用break跳出循环,不一致计数count加一,达到上限输出锁定账户,故for循环的外层还需要一层while循环。
上代码:
count = 0 # 控制错误次数
tag = True # 控制循环结束条件
with open('userIfo.txt', mode='rt', encoding='utf-8') as f:
while tag:
input_username = input('请输入您的用户名:').strip()
input_password = input('请输入您的密码:').strip()
for line in f: # 遍历文件读取用户名和密码
username, password = line.strip().split(':')
if input_username == username and input_password == password:
print("登陆成功!")
tag = False # 一致则更改while循环条件
break # 跳出for循环
else:
print('账号或密码错误!')
count += 1 # 错误次数加1
if count > 5:
print("账号已锁定!")
tag = False # 达到上限更改循环条件