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

如何验证用户名数组与密码数组对应索引匹配及修正代码

问题解决方案

原代码问题梳理

  • 缩进格式错误:Python对缩进要求严格,原代码中输入和判断语句的缩进层级混乱,会引发语法错误。
  • 未定义变量both:代码中使用了未声明的both变量,运行时会触发NameError。
  • 逻辑漏洞:仅验证密码是否存在于密码数组,未关联用户名对应的索引,导致任意用户输入其他用户的正确密码也会被判定为合法。

修正后的代码

username_array = ["tina", "john", "kath", "lina", "luke", "ali"]
password_array = ["tr.35", "sj.34", "kj.45", "kfj.67", "xdjbh.20", "djmv.92"]

# 获取用户名输入
username = input("Please enter in your username: ")
if username in username_array:
    print("Username found!")
    # 获取用户名对应的索引
    user_index = username_array.index(username)
    # 获取密码输入
    password = input("Please enter in your password: ")
    # 验证对应索引的密码是否匹配
    if password == password_array[user_index]:
        print("Correct password!")
    else:
        print("Invalid Password!!")
else:
    print("Invalid Username!!")

代码说明

  1. 缩进修正:统一代码缩进层级,确保Python解释器能正确识别代码块逻辑。
  2. 索引关联验证:当用户名存在时,通过username_array.index(username)获取该用户名在数组中的索引,再用此索引从password_array中取出对应的密码进行比对,保证用户名和密码是一一配对的。
  3. 移除无效变量:删除未定义的both变量,替换为直接的密码匹配判断。
  4. 流程优化:只有用户名验证通过后,才会提示输入密码,避免无效的密码输入步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 04:20:17