次の例では、カスタム関数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オブジェクトのみに対応します。
コメントを残す