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

Python判断新用户ID是否重复时报NameError变量未定义问题

错误原因分析

  • 触发NameError的核心原因是列表推导式的临时变量作用域限制:你在第2行列表推导式里定义的current_user_case是仅在推导式内部生效的临时变量,推导式执行完成生成current_users_case列表后,这个临时变量就会被销毁,后续循环中直接调用current_user_case自然会报未定义错误。
  • 就算没有这个报错,你的校验逻辑也存在问题:你需要判断的是新ID转小写后是否存在于已转小写的整个已占用ID列表中,而非和单个临时变量做相等判断。

修正后可运行代码

current_users = ['id_1','id_2','id_3', 'ID_4', 'id_5']
# 全部转为小写存储,避免大小写导致的校验遗漏
current_users_lower = [user.lower() for user in current_users]

new_users = ['id_5','id_4','id_7', 'id_8', 'id_9']

for new_user in new_users:
    # 新ID也转小写后再校验是否存在
    if new_user.lower() in current_users_lower:
        print("Sorry, ID already taken")
    else:
        print("ID available")

运行输出

Sorry, ID already taken
Sorry, ID already taken
ID available
ID available
ID available

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:03