模拟登录注册程序,要求如下: (1) 编写一个注册程序,接收用户输入的用户名与密码,并将它们保存至一个文本文件user_list.txt中。 (2) 编写一个登录程序,提示用户输入用户名与密码,读取user_list.txt,判断用户是否在文件中,如果在用户在该文件中,则继续判断用户输入的密码是否正确。 (3) 增加对用户输入密码次数的限制,若用户连续输入三次错误密码,将无法继续输入密码。
时间: 2023-11-27 08:53:39 浏览: 90
以下是一个简单的Python实现,实现了上述要求:
```python
import sys
# 注册用户
def register():
# 打开用户列表文件
with open('user_list.txt', 'a+') as f:
# 获取用户名和密码
username = input('请输入用户名:')
password = input('请输入密码:')
# 写入文件
f.write(username + ',' + password + '\n')
print('注册成功')
# 登录
def login():
# 打开用户列表文件
with open('user_list.txt', 'r') as f:
# 获取用户名和密码
username = input('请输入用户名:')
password = input('请输入密码:')
# 判断用户名是否存在
found = False
for line in f.readlines():
parts = line.strip().split(',')
if parts[0] == username:
found = True
# 判断密码是否正确
if parts[1] == password:
print('登录成功')
return
else:
print('密码错误')
break
if not found:
print('无此用户')
# 主函数
def main():
# 循环,直到用户选择退出
while True:
print('请选择操作:1.注册 2.登录 3.退出')
choice = input()
if choice == '1':
register()
elif choice == '2':
# 登录时连续输错密码的次数
count = 0
while count < 3:
login()
count += 1
print('密码输入次数过多,程序退出')
sys.exit()
elif choice == '3':
sys.exit()
else:
print('无效的选择,请重新输入')
if __name__ == '__main__':
main()
```
在该程序中,我们使用`with`语句来打开文件,这样可以自动关闭文件。在注册时,我们向文件中写入用户名和密码,每个用户一行,用逗号分隔。在登录时,我们读取文件中的每一行,查找是否有用户名与输入相同的用户,如果找到了,就比较密码是否相同。如果密码错误,则输出错误信息,否则表示登录成功。如果找不到用户名,则输出无此用户的信息。在登录时,我们增加了连续输错密码的次数限制,如果连续输错三次,则程序退出。