Python 文字列が数値であるかどうかを判定する

次の例では、カスタム関数is_number()メソッドを作成して、文字列が数値であるかどうかを判定します。

実例(Python 3.0+)

# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.ceodata.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

# 文字列と数字をテストする

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
# 漢数字
print(is_number('四')) # True
# 著作権マーク
print(is_number('©'))  # False

ネストされたifステートメントも使用できます。

上記のコードを実行した結果は次のとおりです。

False
True
True
True
True
True
True
True
False

その他の方法

Python isdigit() メソッドは、文字列が数字のみで構成されているかどうかを検知します。

Python isnumeric()メソッドは、文字列が数値のみで構成されているかどうかを検知します。このメソッドは、Unicodeオブジェクトのみに対応します。

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です