在阅读python文档时,我接触到了.isdecimal()和.isdigit()字符串函数,我没有发现文献中对它们的区别有太清楚的说明,有人能给我提供这两个函数区别的代码示例吗?
类似行为:
>>> str.isdecimal('1')
True
>>> str.isdigit('1')
True
>>> str.isdecimal('1.0')
False
>>> str.isdigit('1.0')
False
>>> str.isdecimal('1/2')
False
>>> str.isdigit('1/2')
False
6条答案
按热度按时间8tntrjer1#
有 * 一些 * 差异,但有些罕见 *。它主要出现各种unicode字符,如
2
:您还可以使用
isnumeric
方法进一步深入细致地区分unicode:xfyts7mz2#
让我们看一些示例:
str.isdecimal()(仅限十进制数字)
34是十进制数吗?--〉是的
上标2是十进制数吗?--〉否
字符串isdigit()(小数、下标、上标)
34是一个数字吗?--〉是的
上标2是数字吗?--〉是
str.isnumeric()(小数、下标、上标、普通分数、罗马数字、货币分子)
34是数字吗?--〉是
上标2是数字吗?--〉是
普通分数四分之一是数字吗?--〉是
92dk7w1h3#
如果你有疑问,我的建议--去编码,去看结果,去得出结论。
一个代码
查看结果
得出结论
如您所见,函数 str.isdecimal() 和 str.isdigit() 之间的主要区别在于:函数 str.isdecimal() 仅对0到9之间的数字返回True,同时函数 str.isdigit() 对某些其他Unicode支持的字符返回True。
pdsfdshx4#
完成PADYMKO的答案后,我们可以添加其他感兴趣的函数并扩展代码
编号
结果是
PS:很抱歉格式不对。
ru9i0ody5#
等位数()
十进制()
toe950276#
enter image description here
isdigit a ="123"的示例
a. isdigit()
真
a ="1.234"
a. isdigit()
假的
a ="2平方"
a. isdigit()
b ="3"
b. isdigit()
罗马数字、货币分子和分数(通常使用unicode编写)被认为是数字字符,而不是数字。如果字符串包含这些字符,isdigit()返回False
罗马数字:Ⅰ、Ⅱ、Ⅺ货币分子:$,,€,£分数:1/2,2/4
c ="十一"
c.是数字()
假的
d ="卢比"
d. isdigit()
假的
e ="½"
例如isdigit()
假的
isdecimal()的一些示例
a ="123"
a.十进制()
真b ="3"
b.十进制()
c ="十一"
c.十进制()
错误d =""
d.十进制()
错误e ="½"
即十进制()
假的
上标和下标被视为数字字符,但不被视为小数。如果字符串包含这些字符(通常使用unicode编写),isdecimal()将返回False。同样,罗马数字、货币分子和分数被视为数字(通常使用unicode编写),但不被视为小数。在这种情况下,isdecimal()也将返回False。
源链接:https://www.programiz.com/python-programming/methods/string/isdecimalhttps://www.programiz.com/python-programming/methods/string/isdigit
如果我错了,请纠正我只是一个新的学习者