You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

登录验证异常:代码仅识别最后一个字典项,无法正确校验用户名密码

登录校验问题修复方案

你的代码问题出在cred_valid方法的逻辑上:循环遍历bank_data时,只是不断用最后一个用户的信息覆盖变量a和p,循环结束后校验逻辑只和最后一个用户比对,自然无法识别其他用户的账号密码。

下面是修复后的代码,同时优化了不必要的操作:

bank_data = [
    {
        "username": "jordyn123",
        "password": '1234',
        "balance": 100_000

    },
    {
        "username": "ron456",
        "password": '6789',
        "balance": 500
    }
]

class BankAccount:
    def __init__(self, username, password):
        self.username = username
        self.password = password

    # 校验用户名和密码
    def cred_valid(self):
        # 逐个遍历所有用户数据
        for user in bank_data:
            if user['username'] == self.username and user['password'] == self.password:
                print("登录成功")
                return  # 找到匹配项后直接终止方法,避免多余遍历
        # 遍历完所有用户都没匹配到
        print("用户名或密码错误,请重试")

修改说明:

  • 去掉了没必要的data列表和重复实例化BankAccount的操作,直接用原始字典比对,更高效
  • 遍历过程中每找到一个匹配的用户就立即输出成功并返回,不用继续遍历剩余数据
  • 只有当所有用户都比对失败时,才输出错误信息,确保所有账号都能被正确校验

内容的提问来源于stack exchange,提问作者thegreat21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:28:20