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

如何校验两个输入变量在不同列表的相同索引位置并返回有效状态

问题原因

你当前的校验逻辑只分别验证了用户名、密码是否存在于对应列表中,没有绑定二者的索引对应关系,因此会出现错位组合也能通过校验的问题。

实现方案

这里给你两种可行的实现方式:

方案1:按索引匹配(对应你现有列表存储的逻辑)

先找到输入用户名在用户列表中的索引位置,再校验密码列表对应索引的值是否和输入密码一致即可,修改后的check_login函数如下:

def check_login(user, pasw):
    # 先判断用户名是否存在,避免index方法抛出异常
    if user not in logins.users:
        print('Invalid user and password, try again.')
        return
    # 获取用户名对应的索引
    user_index = logins.users.index(user)
    # 校验对应索引的密码是否匹配
    if logins.passes[user_index] == pasw:
        print('Valid')
    else:
        print('Invalid user and password, try again.')

方案2:用字典存储映射关系(更推荐,性能和可读性更好)

你可以提前把用户名和密码的列表打包成键值对字典,后续校验直接查字典即可,逻辑更简洁:

# 可以在导入logins后先初始化映射字典
user_pass_map = dict(zip(logins.users, logins.passes))

def check_login(user, pasw):
    if user_pass_map.get(user) == pasw:
        print('Valid')
    else:
        print('Invalid user and password, try again.')

额外优化建议

你已经导入了getpass模块,可以把密码输入的代码从password = input('Password: ')改成password = getpass('Password: '),终端输入密码时就不会明文显示,安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:54:03