2024-04-24 06:29:18 发布
网友
我是这样做的:
inNumber = somenumber inNumberint = int(inNumber) if inNumber == inNumberint: print "this number is an int" else: print "this number is a float"
差不多吧。 有没有更好的方法来做这个?
使用isinstance。
>>> x = 12 >>> isinstance(x, int) True >>> y = 12.0 >>> isinstance(y, float) True
所以:
>>> if isinstance(x, int): print 'x is a int!' x is a int!
编辑:
如前所述,在长整数的情况下,上述方法不起作用。所以你需要:
>>> x = 12L >>> import numbers >>> isinstance(x, numbers.Integral) True >>> isinstance(x, int) False
我最喜欢“忍者壁虎”的回答。
这也会起作用:
for Python 2.x
isinstance(n, (int, long, float))
Python 3.x doesn't have long
isinstance(n, (int, float))
复数也有复数类型
一行:
isinstance(yourNumber, numbers.Real)
这避免了一些问题:
>>> isinstance(99**10,int) False
演示:
>>> import numbers >>> someInt = 10 >>> someLongInt = 100000L >>> someFloat = 0.5 >>> isinstance(someInt, numbers.Real) True >>> isinstance(someLongInt, numbers.Real) True >>> isinstance(someFloat, numbers.Real) True
使用isinstance。
所以:
编辑:
如前所述,在长整数的情况下,上述方法不起作用。所以你需要:
我最喜欢“忍者壁虎”的回答。
这也会起作用:
复数也有复数类型
一行:
这避免了一些问题:
演示:
相关问题 更多 >
编程相关推荐