例如:
import random
x = random.randint(1, 6)
y = 2
new = x / y
...
现在,让我们说x原来是5。 在我的程序中执行其他操作之前,如何才能捕获它是int还是float?
答案 0 :(得分:2)
默认情况下,如果你没有
,整数除法在python 2中有点意外from __future__ import division
示例:
>>> 5 / 3
1
>>> isinstance(5 / 3, int)
True
说明:Why doesn’t this division work in python?
最后,您始终可以将数字转换为int:
>>> from __future__ import division
>>> int(5/3)
1
答案 1 :(得分:1)
如果你希望new
总是一个int,那么一个选项就是分区:
new = x // y
另一个是圆形:
new = int(round(x/y))
如果相反,你只想检查new
是否是浮点数,这在Python中有点不寻常(通常,不需要进行类型检查)。如果是这样,请告诉我们更多关于您想要检查的为什么的信息,您将获得更好的指导。
答案 2 :(得分:0)
isinstance(x, int)
但你很少需要这样做。仔细检查标准库可能不是其中之一。 :)
请注意,在某些情况下您也可以捕获异常(尽管这不适用于此示例)。
答案 3 :(得分:0)
如果您不介意被截断的值(5.7将变为5),您可以简单地将其强制转换为int。
must_be_an_int = int(x)
如果由于某种原因x是python无法转换为int的东西,它将引发ValueError异常。