Python中如何识别字符串内容对应的integer、float、string数据类型
实现方案
你可以通过「类型尝试转换+优先级判断」的逻辑实现,按照integer→float→string的顺序校验,避免数值类字符串被误判为普通字符串。
完整可运行代码如下:
def input_type(value: str) -> str: # 优先判断整数类型 try: int(value) return "integer" except ValueError: pass # 其次判断浮点数类型 try: float(value) return "float" except ValueError: pass # 都不符合则判定为普通字符串 return "string" # 测试示例 print(input_type("1")) # 输出:integer print(input_type("3.14")) # 输出:float print(input_type("hello")) # 输出:string print(input_type("-5")) # 输出:integer print(input_type("2.0")) # 输出:float
逻辑说明
- 优先级设置原因:整数字符串也可以被
float()正常转换,所以必须先做整数类型校验,避免"1"这类值被误判为float - 兼容边界场景:原生支持带正负号的数值识别、带科学计数法的浮点数识别,无需额外写正则匹配规则
内容的提问来源于stack exchange,提问作者Abdulrahman Almorsy
相关产品推荐
相关产品推荐

