Python 有字符串函数来测试所有字符是否都是数字:string.isdigit()
.
手册上写着:
对于 8 位字符串,此方法取决于语言环境
这种方法如何依赖于语言环境?在哪些语言环境中存在 0-9 范围之外的数字?
此外,如果这取决于区域设置,python 是否有一种方法可以使用特定的区域设置(即只有 0-9 位)来检查它。
Python 有字符串函数来测试所有字符是否都是数字:string.isdigit()
.
手册上写着:
对于 8 位字符串,此方法取决于语言环境
这种方法如何依赖于语言环境?在哪些语言环境中存在 0-9 范围之外的数字?
此外,如果这取决于区域设置,python 是否有一种方法可以使用特定的区域设置(即只有 0-9 位)来检查它。
CPython 对字符串的 is_digit 方法使用 C 函数“isdigit”(参见 stringobject.c)。请参阅此相关线程: Can isdigit 合法地依赖于 C 中的语言环境
显然,它与上标数字有关,例如 0xB2 ('²')、0xB3 ('³') 和 0xB9 ('¹')。
高温高压
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