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

Python如何实现函数判断输入str对象属于int、double或普通字符串类型

Python字符串实际类型判断函数修正方案

原有代码的问题

  • 返回值不符合要求:需求要求返回'int'/'double'/'str',原有代码返回的是'integer'/'double'/'string',命名不匹配
  • 整数判断逻辑缺陷:str.isdigit()方法无法识别带负号的整数(比如"-123"),会将合法负整数误判为浮点数;同时elif value.isdigit() == 0的写法冗余且不规范,直接用else分支即可
  • 逻辑顺序不合理:先做数字判断再尝试转浮点数的逻辑,无法覆盖带符号的整数场景

修正后的代码

def input_type(value: str) -> str:
    # 优先判断是否为整数(兼容负整数)
    try:
        int(value)
        return 'int'
    except ValueError:
        pass
    # 再判断是否为浮点数
    try:
        float(value)
        return 'double'
    except ValueError:
        return 'str'

逻辑说明

  • 优先尝试将输入字符串转为int:只要转换成功就直接返回'int',完美覆盖正整数、负整数场景,避免了isdigit()的判断缺陷
  • 整数转换失败后尝试转float:转换成功返回'double',支持普通小数、科学计数法等合法浮点数格式
  • 两种转换都失败则返回'str',完全匹配需求的返回值要求
  • 常见场景测试结果:
    • 输入"123" 返回'int'
    • 输入"-456" 返回'int'
    • 输入"123.45" 返回'double'
    • 输入"1e3" 返回'double'
    • 输入"abc123" 返回'str'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:06:01