Python有字符串函数来测试所有字符是否都是数字:string.isdigit()
。
在手册中写道:
对于8位字符串,此方法依赖于语言环境
这种方法如何依赖于locale?在哪些区域设置中有0-9范围之外的数字?
此外,如果这是依赖于语言环境的,那么python是否有一种方法可以使用特定的语言环境(即只有0-9位数)进行检查。
答案 0 :(得分:4)
CPython对字符串使用C函数“isdigit”作为is_digit方法(参见stringobject.c)。请参阅此相关主题:Can isdigit legitimately be locale dependent in C
显然,它与上标数字有关,如0xB2('²'),0xB3('³')和0xB9('¹')。
HTH
答案 1 :(得分:1)
python是否有一种方法可以使用特定的语言环境(即只有0-9位数)进行检查。
最简单的方法:
>>> '1' in '1234567890'
True
>>> 'a' in '1234567890'
False
你也可以检查ord
, 可能更快(isn't):
>>> ord('0') <= ord('a') <= ord('9')
False
>>> ord('0') <= ord('5') <= ord('9')
True