Python 判斷字符串是否為數(shù)字

Document 對象參考手冊 Python3 實(shí)例

以下實(shí)例通過創(chuàng)建自定義函數(shù) is_number() 方法來判斷字符串是否為數(shù)字:

# -*- coding: UTF-8 -*-

# Filename : test.py
# author by : m.o2fo.com

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass

    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass

    return False

# 測試字符串和數(shù)字
print(is_number('foo'))   # False
print(is_number('1'))     # True
print(is_number('1.3'))   # True
print(is_number('-1.37')) # True
print(is_number('1e3'))   # True

# 測試 Unicode
# 阿拉伯語 5
print(is_number('?'))  # True
# 泰語 2
print(is_number('?'))  # True
# 中文數(shù)字
print(is_number('四')) # True
# 版權(quán)號
print(is_number('?'))  # False

我們也可以使用內(nèi)嵌 if 語句來實(shí)現(xiàn):

執(zhí)行以上代碼輸出結(jié)果為:

False
True
True
True
True
True
True
True
False

更多方法

Python isdigit() 方法檢測字符串是否只由數(shù)字組成。

Python isnumeric() 方法檢測字符串是否只由數(shù)字組成。這種方法是只針對unicode對象。

Document 對象參考手冊 Python3 實(shí)例