One - One Code All

Blog Content

python中str函数isdigit、isdecimal、isnumeric的区别

Python 统计学-科学计算   2017-01-03 22:35:27


num = "1"  #unicode

num.isdigit()   # True

num.isdecimal() # True

num.isnumeric() # True


num = "1" # 全角

num.isdigit()   # True

num.isdecimal() # True

num.isnumeric() # True


num = b"1" # byte

num.isdigit()   # True

num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'

num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'


num = "IV" # 罗马数字

num.isdigit()   # True

num.isdecimal() # False

num.isnumeric() # True


num = "四" # 汉字

num.isdigit()   # False

num.isdecimal() # False

num.isnumeric() # True


===================

isdigit()

True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字

False: 汉字数字

Error: 无


isdecimal()

True: Unicode数字,,全角数字(双字节)

False: 罗马数字,汉字数字

Error: byte数字(单字节)


isnumeric()

True: Unicode数字,全角数字(双字节),罗马数字,汉字数字

False: 无

Error: byte数字(单字节)


================

import unicodedata


unicodedata.digit("2")   # 2

unicodedata.decimal("2") # 2

unicodedata.numeric("2") # 2.0


unicodedata.digit("2")   # 2

unicodedata.decimal("2") # 2

unicodedata.numeric("2") # 2.0


unicodedata.digit(b"3")   # TypeError: must be str, not bytes

unicodedata.decimal(b"3") # TypeError: must be str, not bytes

unicodedata.numeric(b"3") # TypeError: must be str, not bytes


unicodedata.digit("Ⅷ")   # ValueError: not a digit

unicodedata.decimal("Ⅷ") # ValueError: not a decimal

unicodedata.numeric("Ⅷ") # 8.0


unicodedata.digit("四")   # ValueError: not a digit

unicodedata.decimal("四") # ValueError: not a decimal

unicodedata.numeric("四") # 4.0


#"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","万","亿"



上一篇:selenium webdriver启动Chrome浏览器后报错unknown error
下一篇:git导出代码的方法git archive

The minute you think of giving up, think of the reason why you held on so long.