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

Python函数根据输入数字返回字段名时返回错误值

问题分析与修复

你的代码存在两个核心问题,导致返回结果不符合预期:

  1. 参数被覆盖:函数内部第一行直接将传入的bldgcode参数重新赋值为字典,导致输入的数字参数完全没被用到。
  2. 循环错误返回:for values in bldgcode遍历的是字典的键,第一次循环拿到第一个键1就立刻执行return,所以不管传入什么参数,都会返回1。

修复后的最优写法

直接利用字典的键值映射特性,无需循环:

def GetFieldName(bldgcode):
    # 单独定义映射字典,避免覆盖传入的参数
    code_to_field = {
        1: "SFCount", 
        2: "MFCount", 
        3: "ComCount", 
        4: "IndCount", 
        5: "CityCount", 
        6: "ShedCount", 
        7: "SchCount", 
        8: "ChurCount"
    }
    # 用get方法取值,第二个参数是键不存在时的默认返回值
    return code_to_field.get(bldgcode, "未知字段")

# 测试
print(GetFieldName(8))  # 输出:ChurCount

循环实现版本(仅作演示)

如果一定要保留循环逻辑,需要遍历键值对并匹配输入参数:

def GetFieldName(bldgcode):
    code_to_field = {
        1: "SFCount", 
        2: "MFCount", 
        3: "ComCount", 
        4: "IndCount", 
        5: "CityCount", 
        6: "ShedCount", 
        7: "SchCount", 
        8: "ChurCount"
    }
    for key, field_name in code_to_field.items():
        if key == bldgcode:
            return field_name
    return "未知字段"  # 未匹配到键时返回

# 测试
print(GetFieldName(8))  # 输出:ChurCount

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:35:23