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

python isdigit()函数对非数字字符u'\ u2466'返回true

刘修能
2023-03-14
问题内容

我在处理python isdigit函数时遇到一个奇怪的问题。

例如:

>>> a = u'\u2466'
>>> a.isdigit()
Out[1]: True
>>> a.isnumeric()
Out[2]: True

为什么这个字符是数字?

有什么办法可以使此返回False,谢谢?

编辑,如果我不想将其视为数字,那么如何将其过滤掉?

例如,当我尝试将其转换为int时:

>>> int(u'\u2466')

然后UnicodeEncodeError发生了。


问题答案:

U + 2466是CIRCLED DIGIT
SEVEN
(⑦),所以是的,它是一个数字。

如果您对数字的定义与Unicode联合会的定义不同,则可能必须编写自己的isdigit()方法

编辑,如果我不想将其视为数字,那么如何将其过滤掉?

如果您只对ASCII数字0…感兴趣,则9可以执行以下操作:

In [4]: s = u'abc 12434 \u2466 5 def'

In [5]: u''.join(c for c in s if '0' <= c <= '9')
Out[5]: u'124345'


 类似资料:
  • 问题内容: 我将以下字符视为“非法”: ,,,,,,,,,,,,,,,,, 我想编写一个检查字符串并确定(/ )该字符串是否包含以下非法内容的方法: 但是,对此进行简单检查是不可行的。我需要一种方法来扫描字符串中的每个字符,并确保它不是这些字符之一。当然,我可以做一些 可怕的 事情: 有没有更优雅/有效的方法来实现这一目标? 问题答案: 您可以在此处使用和类。您可以将所有已过滤的字符放在一个字符类

  • 问题内容: 我正在寻找一个php函数,该函数将接受一个输入字符串,并通过去除所有仅保留字母数字的特殊字符来返回其净化版本。 我需要另一个功能相同但仅返回字母字符AZ的函数。 任何帮助,不胜感激。 问题答案: 警告:请注意,英语不仅限于AZ。 尝试执行以下操作删除az,AZ和0-9以外的所有内容: 如果字母数字的定义包括外语字母和过时的脚本,则您将需要使用Unicode字符类。 尝试以下操作仅保留A

  • 我需要一些帮助在Java:我有一个函数签名,我不能改变,我的函数需要递归和返回字符串数组没有任何选项添加到签名。 这是我的签名: 该函数在TRIE结构中查找相似的单词,在它们之间有K个字母变化的差异。 例如-在单词“bike”和k=2的TRIE中,该函数将返回一个(包含nice和nine)。 我不是在寻找解决方案,只是为了一个返回字符串数组的方法。 **我用我收到的签名编写了一个函数作为包装器,但

  • 问题内容: 如何从WebAssembly函数返回JavaScript字符串? 下列模块可以用C(++)编写吗? 另外:我可以将其传递给JS引擎进行垃圾回收吗? 问题答案: WebAssembly本身不支持字符串类型,它,而支撑件///值类型以及/用于存储。 这取决于您要执行的操作,但似乎直接访问缓冲区是最简单的: 如果您的模块具有功能,那么它将在实例化时执行。否则,您可能会调用一个导出,例如。 完

  • 说我有一个功能: 我想打印一些东西,前面有一个井号符号,当我尝试运行这个程序时,它打印了一个错误,显示此错误消息: 谁能告诉我如何在返回函数中包含英镑符号?我基本上是在类中使用它,它在部分中包含了井号。

  • //即使在返回成功消息后,我仍然收到预期的字符串返回…//任何帮助都将不胜感激