【问题标题】:isnumeric & isdecimal not behaving as expectedisnumeric 和 isdecimal 未按预期运行
【发布时间】:2015-04-04 06:22:48
【问题描述】:

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

我有一种(错误的)印象,即isnumericisdecimal 会为123.45 等字符串返回True,否则返回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()

【问题讨论】:

标签: python string python-3.4


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2020-06-28
    • 2012-02-18
    • 2018-01-18
    • 2012-06-14
    相关资源
    最近更新 更多