「Python3」文字列が数字かどうか判定するサンプル

2020年12月6日

構文
unicodedata.numeric(chr[, default])
文字 chr に割り当てられている数値を、float で返します。この値が定義されていない場合には default が返されますが、この引数が与えられていなければ ValueError を発生させます。
サンプルコード

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

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('abcde'))   
print(is_number('4'))     
print(is_number('5.6'))   
print(is_number('-7.48')) 
print(is_number('1e3'))  
#Unicode テスト
print(is_number('©'))

実行結果
False
True
True
True
True
False

Python

Posted by arkgame