2016-06-08 77 views
0

在Python中,如果我有一個帶有浮點數的列表,我怎樣才能找到所有條目,它們是圓形數字?查找循環圖

例如 檢查X = [1.234,0.000000,2.0,0.0001]給出輸出

>>>  False 
      True 
      True 
      False 

我試圖isinstance函數,它不工作:

x=[1.234,0.000000,2.0,0.0001] 
for i in x: 
    print(isinstance(i, int)) 

我想技術上2.0和如類型整數不。所以我不能像那樣使用它。

回答

2

使用isinstance行不通,因爲那些在技術上始終都float

>>> x = [1.234, 0.000000, 2.0, 0.0001] 
>>> [type(n) for n in x] 
[float, float, float, float] 

但你可以檢查是否值,轉換爲int,等於原來的值:

>>> [n == int(n) for n in x] 
[False, True, True, False] 

或者,如評論中指出的,使用float.is_integer

>>> [n.is_integer() for n in x] 
[False, True, True, False] 
+2

爲什麼不直接使用'float.is_integer()'呢? –

+0

@MartijnPieters因爲我沒有想到它。 ;-)添加回答。 –

+0

由於這些浮點數和浮點數總是近似值,那麼'(4 ** 3)**(1.0/3)'(4的立方體的立方根)怎麼樣?這不是*相當* 4,那是3.9999999999999996。這足夠接近整數嗎? –