isnumeric& isdecimal不符合预期

时间:2015-04-04 06:22:49

标签: python string python-3.4

在python字符串中有一个方法isnumericisdigit

我的(错误的)印象是isnumericisdecimal会为True等字符串返回123.45,否则会返回false。我正在运行以下版本的python:

Python 3.4.2 (default, Jan  7 2015, 11:54:58) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin

我发现isnumericisdecimal如果字符串中的所有字符都是整数则返回true,但如果存在'.'(点)则返回false。是什么导致这种行为?不应该'123.45'.isnumeric()返回True吗?

>>> mystr_a = '123.45'
>>> mystr_b = '123'
>>> 
>>> mystr_a.isnumeric()
False
>>> mystr_a.isdecimal()
False
>>> mystr_b.isnumeric()
True
>>> mystr_b.isdecimal()

1 个答案:

答案 0 :(得分:3)

Python documentation中所定义,如果字符串中的所有字符都是数字,则isnumeric会返回True,否则为False。点不被视为数字。