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

Python新手求优化Credential verifier:减少凭证验证条件的方法

优化方案1:使用集合存储凭证元组

这种方式贴合你原本的思路,把所有合法的(用户名, 密码)元组集中存放在一个集合里,验证时只需判断输入的元组是否在集合中即可。后续新增凭证,只要往集合里加新的元组就行,完全不用修改验证逻辑。

代码示例:

# 存储所有合法凭证的集合
valid_credentials = {('serah', '0168'), ('bob', '0110'), ('kevin', '0440')}

def log_in():
    name_input = input('Username: ')
    password_input = input('Password: ')
    user_cred = (name_input, password_input)
    
    if user_cred in valid_credentials:
        print(f'hello {name_input}')
    else:
        print(False)

log_in()

优化方案2:使用字典存储(更推荐)

因为用户名具有唯一性,用字典以用户名为键、密码为值存储,不仅能简化验证逻辑,还能区分「用户名不存在」和「密码错误」两种情况,给用户更明确的反馈。

代码示例:

# 用字典存储用户名与对应密码
valid_credentials = {
    'serah': '0168',
    'bob': '0110',
    'kevin': '0440'
}

def log_in():
    name_input = input('Username: ')
    password_input = input('Password: ')
    
    # 先检查用户名是否存在
    if name_input in valid_credentials:
        if valid_credentials[name_input] == password_input:
            print(f'hello {name_input}')
        else:
            print('密码错误')
    else:
        print('用户名不存在')

log_in()

额外说明

你原来定义的credential类没有实际必要——它仅封装了一个元组,没有提供额外功能。直接用集合或字典存储凭证更简洁高效,后续新增凭证时,只需在集合/字典中添加对应条目,完全不需要修改log_in函数里的判断代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:40:05