在 Python 中確定數字是整數還是小數。
以下案例以示例代碼進行說明。
- 確定數字是整數 int 還是浮點 float:
isinstance()
- 確定浮點類型數是否為整數(0 個小數位):
float.is_integer()
- 確定數字字符串是否為整數
要獲取十進制數的整數和十進制值,請參閱以下文章。
判斷字符串是否為數字(包括中文數字等)而不是整數還是小數,請看下面的文章。
確定數字是整數還是浮點類型:isinstance()
可以使用內置函數 type() 獲取對象的類型。
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
此內置函數可用於確定對像是否屬於特定類型。這可用於確定數字是整數還是浮點類型。
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
在這種情況下,它只判斷類型,因此無法判斷浮點類型的值是否為整數(小數點為0)。
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
確定浮點類型數是否為整數(0 個小數位):float.is_integer()
為 float 類型提供了 is_integer() 方法,如果值為整數,則返回 true,否則返回 false。
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
例如,對於整數返回 true 的函數可以定義如下。另一方面,字符串類型為 false。
def is_integer_num(n):
if isinstance(n, int):
return True
if isinstance(n, float):
return n.is_integer()
return False
print(is_integer_num(100))
# True
print(is_integer_num(1.23))
# False
print(is_integer_num(100.0))
# True
print(is_integer_num('100'))
# False
確定數字字符串是否為整數
如果要確定一串整數數字也是整數,可以使用以下函數。
對於可以用float()轉換為float類型的值,轉換為float後應用is_integer()方法並返回結果。
def is_integer(n):
try:
float(n)
except ValueError:
return False
else:
return float(n).is_integer()
print(is_integer(100))
# True
print(is_integer(100.0))
# True
print(is_integer(1.23))
# False
print(is_integer('100'))
# True
print(is_integer('100.0'))
# True
print(is_integer('1.23'))
# False
print(is_integer('string'))
# False
有關將字符串轉換為數字的詳細信息,請參閱以下文章。
判斷字符串是否為數字(包括中文數字等)的詳細內容請看下面的文章。