排查printtype函数错误:无法按要求返回对应类型字符串
修复printtype函数的类型返回问题
问题分析
原函数的核心错误在于所有分支都直接返回了传入的参数x,而非需求指定的字符串标识;同时else块中的isinstance(x,str)只是执行了类型判断,没有对返回逻辑产生任何影响,导致传入字符串时也返回参数本身。报错信息翻译为:
'Float' != 2.5 : 当传入float类型参数时,你必须返回"Float"
修复后的代码
def printtype(x): if isinstance(x, int): return "Int" elif isinstance(x, float): return "Float" elif isinstance(x, str): return "String" # 可选:处理其他类型的情况,比如返回默认值或抛出异常 # else: # return "Unknown Type" # 测试验证 print(printtype(5)) # 输出: Int print(printtype(5.0)) # 输出: Float print(printtype("5")) # 输出: String
代码说明
- 每个类型判断分支都返回需求指定的字符串(
"Int"/"Float"/"String"),而非原参数 - 新增
elif isinstance(x, str)分支,明确处理字符串类型的返回逻辑,替代原无效的else判断 - 调整测试代码为直接打印返回值,更直观验证结果
内容的提问来源于stack exchange,提问作者Abrar
相关产品推荐
相关产品推荐

