5

Python 有字符串函数来测试所有字符是否都是数字:string.isdigit().

手册上写着:

对于 8 位字符串,此方法取决于语言环境

这种方法如何依赖于语言环境?在哪些语言环境中存在 0-9 范围之外的数字?

此外,如果这取决于区域设置,python 是否有一种方法可以使用特定的区域设置(即只有 0-9 位)来检查它。

4

2 回答 2

4

CPython 对字符串的 is_digit 方法使用 C 函数“isdigit”(参见 stringobject.c)。请参阅此相关线程: Can isdigit 合法地依赖于 C 中的语言环境

显然,它与上标数字有关,例如 0xB2 ('²')、0xB3 ('³') 和 0xB9 ('¹')。

高温高压

于 2012-07-02T14:28:32.063 回答
1

python 是否有一种方法可以使用特定的语言环境(即只有 0-9 位)来检查它。

最简单的方法:

>>> '1' in '1234567890'
True
>>> 'a' in '1234567890'
False

您也可以检查ord,它可能会更快不是):

>>> ord('0') <= ord('a') <= ord('9')
False
>>> ord('0') <= ord('5') <= ord('9')
True
于 2012-07-02T14:26:49.643 回答