当前位置: 首页 > 面试题库 >

python中的str.isdigit,isnumeric和isdecimal有什么区别?

苏墨竹
2023-03-14
问题内容

当我运行这些方法时

s.isdigit()
s.isnumeric()
s.isdecimal()

对于s的每个值(当然是字符串),我总是得到输出,或者全部为True,或者全部为False。两者之间有什么区别?您能否提供一个给出两个对错一个(反之亦然)的示例?


问题答案:

主要是关于unicode分类。以下是一些显示差异的示例:

>>> def spam(s):
...     for attr in 'isnumeric', 'isdecimal', 'isdigit':
...         print(attr, getattr(s, attr)())
...         
>>> spam('½')
isnumeric True
isdecimal False
isdigit False
>>> spam('³')
isnumeric True
isdecimal False
isdigit True

具体行为在此处的官方文档中。

查找所有脚本:

import sys
import unicodedata
from collections import defaultdict

d = defaultdict(list)
for i in range(sys.maxunicode + 1):
    s = chr(i)
    t = s.isnumeric(), s.isdecimal(), s.isdigit()
    if len(set(t)) == 2:
        try:
            name = unicodedata.name(s)
        except ValueError:
            name = f'codepoint{i}'
        print(s, name)
        d[t].append(s)


 类似资料:
  • 问题内容: 阅读python文档时,我已经了解了.isdecimal()和.isdigit()字符串函数,但是我对它们的可用区别并没有找到任何清晰的文献。有人可以向我提供这两个函数区别的代码示例。 类似的行为: 问题答案: 有 有 差异,但他们有些罕见*。它主要出现各种unicode字符,例如: 您还可以使用以下方法进一步深入谨慎的unicode-distinction兔子洞: *至少,我从未遇到

  • 问题内容: 我在此官方文档中进行了搜索,以查找python中的json.dump()和json.dumps()之间的区别。显然,它们与文件写入选项有关。 但是,它们之间的详细区别是什么?在什么情况下,一个比另一个具有更多的优势? 问题答案: 除了文档所说的内容外,没有什么可添加的。如果要将JSON转储到文件/套接字或其他文件中,则应使用。如果只需要它作为字符串(用于打印,解析或其他操作),则使用(

  • 问题内容: python中的return和break有什么区别?请解释它们在循环和函数中的确切作用?谢谢 问题答案: 用来过早地结束循环,而y是用于将返回值传递回函数调用者的关键字。如果使用时不带参数,则仅终止函数并返回到之前执行代码的位置。 在某些情况下,它们可以实现相同的目的,但以下两个示例可让您大致了解它们的用途 使用 遍历值列表并在我们看到数字时中断。 将产生以下输出 使用 这是函数在根据

  • 问题内容: 和有什么区别? 问题答案: 区别在于中不存在,而确实存在。实际上,已将旧名称重命名为,而旧名称已消失,但可以使用轻松地对其进行模拟)。(请记住这是邪恶的。如果可能,请尝试使用更安全的方法来解析输入。

  • 问题内容: 和Python 3有什么区别? 问题答案: 区别在于Python 3.x中不存在,而确实存在。实际上,已将旧名称重命名为,而旧名称已消失,但可以使用轻松地对其进行模拟)。(请记住这是不好的。如果可能,请尝试使用更安全的方法来解析你的输入。) 不同之处在于,Python 3 .x中不存在,而输入()则不存在。实际上,旧的已重命名为input(),旧的已不复存在,但可以使用轻松模拟。(记住

  • 问题内容: 在Python 2中,返回浮点值。尽管对我而言并不明显,但我发现了一些解释,以阐明为什么使用return float可能有用(对于诸如和的情况)。 但是,在Python 3中,返回整数(并为前面提到的特殊情况返回溢出错误)。 那么和现在之间有什么区别(如果有)? 问题答案: 几轮 下来 。 截断 。使用负数时,区别很明显: 四舍五入为负数表示它们从0移开,被截断将其移近0。 换句话说,