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

如何检查变量的数据类型?求判断输入为int或float的方法

嘿,我来帮你搞定这个区分int和float类型的问题!下面是几种实用的方法,你可以根据自己的需求选择:

检查变量数据类型(区分int和float)的实用方案

1. 用type()做严格类型判断

type()函数会返回变量的精确类型,适合需要严格区分int和float的场景:

inData = 12
print(type(inData) is int)    # 输出 True
print(type(inData) is float)  # 输出 False

inData = 12.3
print(type(inData) is int)    # 输出 False
print(type(inData) is float)  # 输出 True

# 注意:像5.0这种值为整数的浮点数,type()依然会识别为float
inData = 5.0
print(type(inData) is float)  # 输出 True

2. 用isinstance()做灵活类型判断

isinstance()函数会考虑类的继承关系,虽然int和float没有继承关系,结果和type()一致,但如果之后需要处理自定义数字子类的情况,这个方法会更灵活:

inData = 8
print(isinstance(inData, int))    # True
print(isinstance(inData, float))  # False

inData = 8.9
print(isinstance(inData, int))    # False
print(isinstance(inData, float))  # True

3. 处理“值为整数的浮点数”特殊场景

如果你的需求是区分「真正的整数类型」和「带小数的浮点数」(比如把5.0这种浮点数也归类为“整数值”),可以结合is_integer()方法判断:

def judge_number_type(num):
    if isinstance(num, int):
        return "整数类型(int)"
    elif isinstance(num, float):
        if num.is_integer():
            return "浮点数类型,但数值是整数(如5.0)"
        else:
            return "浮点数类型(float)"
    else:
        return "不是数字类型"

print(judge_number_type(6))      # 整数类型(int)
print(judge_number_type(6.0))    # 浮点数类型,但数值是整数(如5.0)
print(judge_number_type(6.7))    # 浮点数类型(float)

4. 处理用户输入的字符串场景

如果你的inData是用户输入的字符串(比如通过input()获取的),需要先尝试转换再判断类型:

inData = input("请输入数据:")
try:
    # 优先尝试转换为整数
    num = int(inData)
    print("输入的是整数类型(int)")
except ValueError:
    try:
        # 转换整数失败,尝试转换为浮点数
        num = float(inData)
        print("输入的是浮点数类型(float)")
    except ValueError:
        print("输入的不是有效数字")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:06:10