如何在Python中验证用户输入与reg_login.txt内的账号密码匹配?
实现账号密码验证的Python代码
原代码问题分析
- 语法错误:比较值需用
==而非赋值符号=,你写的if语句逻辑完全错误,未正确读取和解析文件中的账号密码。 - 缺少循环逻辑:无法实现“不匹配就重新输入”的需求。
- 文件操作不规范:未正确关闭文件,易引发资源泄漏。
正确实现代码
先解析reg_login.txt中的账号密码对,再通过循环持续验证用户输入:
# 解析账号密码文件,提取所有有效账号密码对 def load_credentials(file_path): credentials = set() with open(file_path, 'r') as f: for line in f: line = line.strip() if not line: continue # 分割每行的用户名和密码部分 parts = line.split(',') username_part = parts[0].strip() password_part = parts[1].strip() # 提取实际的用户名和密码值 username = username_part.split('=')[1].strip() password = password_part.split('=')[1].strip() credentials.add((username, password)) return credentials # 主验证逻辑 credentials = load_credentials('reg_login.txt') while True: username = input("What is your username?: ") password = input("What is your password?: ") # 检查输入的账号密码是否匹配 if (username, password) in credentials: print("登录成功!") break else: print("用户名或密码错误,请重新输入。")
代码说明
load_credentials函数:读取文件并逐行解析,将每对账号密码以元组形式存入集合(集合查询效率更高)。while True循环:持续接收用户输入,直到匹配成功才退出循环。with语句操作文件:自动处理文件的打开与关闭,避免资源泄漏。
内容的提问来源于stack exchange,提问作者Emmanuel Yeboah
相关产品推荐
相关产品推荐

