python判断字符串,str函数isdigit、isdecimal、isnumeric的区别

s为字符串 s.isalnum() 所有字符都是数字或者字母 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符都是数字 s.islower() 所有字符都是小写 s.isupper() 所有字符都是大写 s.istitle() 所有单词都是首字母大写,像标题 s.isspace() 所有字符都是空白字符、\t、\n、\r 判断是整数还是浮点数 a=123 b=123.123 >>>isinstance(a,int) True >>>isinstance(b,float) True >>>isinstance(b,int) False

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GreenLeaves

JavaScript之arguements对象学习

简介:在JavaScript中,有一个特殊的对象-Arguements对象,它是当前函数的一个内置属性,它类似与Array对象(数组形式),但不是Array的一...

2207
来自专栏salesforce零基础学习

salesforce零基础学习(七十六)顺序栈的实现以及应用

数据结构中,针对线性表包含两种结构,一种是顺序线性表,一种是链表。顺序线性表适用于查询,时间复杂度为O(1),增删的时间复杂度为O(n).链表适用于增删,时间复...

2297
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-day05-代码题

Java基础-day05-代码题 1.在主方法里键盘录入n(1<=n<=9),并调用打印nn乘法表的方法。 ? 实现代码: package StudentJ...

3779
来自专栏Python

python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别

python 3中最重要的新特性可能就是将文本(text)和二进制数据做了更清晰的区分。文本总是用unicode进行编码,以str类型表示;而二进制数据以byt...

4382
来自专栏小樱的经验随笔

pandas用法小结

1362
来自专栏mathor

最佳加法表达式

 给定n个1到9的数字,要求在数字之间最多添加m个加号(加号两边必须有数字,并且不能有两个或两个以上加号相邻),使得所得到的加法表达式的值最小,并输出该值。

1922
来自专栏tkokof 的技术,小趣及杂念

指针、引用和常量的一些“故事”

  C++也算是学了有些年头,可惜还是不甚了解,这不,今天对于指针、引用和常量这三个在C++中处处可见的东西又有些懵里懵懂了,也罢,今天就稍稍学究一下,再尽力整...

631
来自专栏C++

python笔记:#005#算数运算符

1632
来自专栏增长技术

Swift---泛型(Generics)

1033
来自专栏奔跑的蛙牛技术博客

Java中实现的简单算法 && 计算二分查找次数

如果采用其他方式对列表进行排序可以使用List接口的sort方法传入一个Comarable的一个对象

1202

扫码关注云+社区

领取腾讯云代金券