一个账号 发表于 2020-2-23 15:11:13

isdigit()、isdecimal() 和 isnumeric() 的区别

本帖最后由 一个账号 于 2020-3-6 21:20 编辑

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 = "Ⅵ" # 罗马数字
num.isdigit()   # False
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 数字(单字节)


isdigit() 和 isdecimal() 基本相同

42291423 发表于 2022-8-6 19:44:56

{:10_257:}醍醐灌顶

dfs035 发表于 2022-8-27 01:13:33

感谢分享,学习了

时节米 发表于 2022-11-22 15:19:28

用小本本记录起来
页: [1]
查看完整版本: isdigit()、isdecimal() 和 isnumeric() 的区别