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

Python如何检查变量为int整数类型而非float浮点类型

原有代码失效原因

你写的if var is int逻辑不成立:is运算符的作用是判断左右两个对象是否为内存中的同一个实例,而int是Python内置的整数类型对象本身,存储数值的变量不可能和类型对象是同一个实例,因此这个判断永远返回False,自然达不到预期效果。

正确实现方案

根据你要严格区分int类型、排除float类型的需求,有两种常用写法:

  • 严格匹配类型,不接受int的任何子类(比如bool类型,bool是int的子类,True实际对应整数1、False对应0),用type()获取变量真实类型后对比:
var = 2.5
if type(var) is int:
    print(var)
else:
    pass
  • 允许匹配int的子类(比如自定义的继承int的类型),同时排除float类型,用isinstance()判断:
var = 2.5
if isinstance(var, int):
    print(var)
else:
    pass
注意避坑

不要使用值判断逻辑(比如var % 1 == 0、var.is_integer())来做类型检查,这类逻辑会把值为整数的float类型(比如2.0)误判为符合要求,达不到区分int和float类型的目的。反例如下:

var = 2.0
# 错误写法:var类型是float,但是值为整数,会被误判
if var % 1 == 0:
    print("误判:var实际是float类型")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:45:06