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 条评论
登录 后参与评论

相关文章

来自专栏Java技术分享圈

杨老师课堂_Java教程第三篇之控制语句

今天主要是讲解以下知识点: 1、引用类型变量的创建及使用 2、流程控制语句之选择语句 3、流程控制语句之循环语句 4、循环高级

693
来自专栏mathor

数制

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

Java基础-day05-代码题

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

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

pandas用法小结

1212
来自专栏武培轩的专栏

快手2018春招后端笔试题解

计算(x^y)%N 题目描述 计算(x^y)%N 注:(x^y)表示x的y次方 输入描述: 每个测试用例一行 每行为空格隔开的 int64_t 类型,分别对应x...

3735
来自专栏mathor

最佳加法表达式

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

1442
来自专栏C++

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

1352
来自专栏salesforce零基础学习

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

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

2207
来自专栏有趣的Python

3-Java基础语法-运算符

也可以有多个运算符和操作数。sum =num1+num2; 加法运算,赋值运算,sum也是操作数。

862
来自专栏老马说编程

(28) 剖析包装类 (下) / 计算机程序的思维逻辑

本节探讨Character类,它的基本用法我们在包装类第一节已经介绍了,本节不再赘述。Character类除了封装了一个char外,还有什么可介绍的呢?它有很多...

1957

扫码关注云+社区