Python 中檢查變數是否為整數
-
使用
isinstance()
方法檢查物件是否為 Python 中的int
型別 -
使用
int()
方法檢查物件是否為 Python 中的int
型別 -
使用
float.is_integer()
方法檢查物件是否為 Python 中的int
型別
在 Python 中,當處理數字時,我們有不同的資料型別。這些是 int
,float
和 complex
資料型別。
int
資料型別用於表示整數。在本教程中,我們將討論如何檢查變數是否為 int
。
在 Python 中,我們通常檢查 type()
函式以返回物件的型別。例如,
x = 10
print(type(x))
print(type(x) == int)
輸出:
<class 'int'>
True
此方法可能正常工作,但會阻止多型性的所有靈活性。例如,如果我們將物件子類化為 int
並希望將其註冊為 int
,那麼 type()
函式可能會失敗。
下面的程式碼演示了這一點。
class def_int(int): pass
x = def_int(0)
print(type(x))
print(type(x) == int)
輸出:
<class '__main__.def_int'>
False
使用 isinstance()
方法檢查物件是否為 Python 中的 int
型別
因此,建議在傳統的 type()
上使用 isinstance()
函式。isinstance()
函式用於檢查物件是否屬於指定的子類。以下程式碼段將說明我們如何使用它來檢查 int
物件。
y = 10
class def_int(int): pass
x = def_int(0)
print(isinstance(y,int))
print(isinstance(x,int))
輸出:
True
True
建議使用抽象基類 numbers.Integral
,而不是具體的 int
類。這樣,我們可以檢查 int
,long
,甚至可以檢查使用者定義的可以用作整數的方法。
使用 int()
方法檢查物件是否為 Python 中的 int
型別
我們也可以使用 int
函式建立一個簡單的邏輯來實現這一目標。對於要成為 int
的物件,該物件應等於將該物件傳遞給該物件時由 int()
函式返回的值。下面的程式碼演示了這一點。
x = 10.05
if(int(x)==x):
print('True')
else:
print('False')
輸出:
False
使用複雜物件時,此方法將返回 Type-error。
使用 float.is_integer()
方法檢查物件是否為 Python 中的 int
型別
此方法僅適用於 float
物件。它檢查 float 物件中的值是否為整數。例如,
x = 10.0
print(float.is_integer(x))
輸出:
True
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn