Python 中檢查變數是否為整數

Manav Narula 2023年10月10日
  1. 使用 isinstance() 方法檢查物件是否為 Python 中的 int 型別
  2. 使用 int() 方法檢查物件是否為 Python 中的 int 型別
  3. 使用 float.is_integer() 方法檢查物件是否為 Python 中的 int 型別
Python 中檢查變數是否為整數

在 Python 中,當處理數字時,我們有不同的資料型別。這些是 intfloatcomplex 資料型別。

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 類。這樣,我們可以檢查 intlong,甚至可以檢查使用者定義的可以用作整數的方法。

使用 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 Narula
Manav Narula avatar Manav Narula avatar

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

相關文章 - Python Integer