📜  python isdigit 负数 - Python (1)

📅  最后修改于: 2023-12-03 14:45:59.627000             🧑  作者: Mango

Python中isdigit函数对负数的判断

isdigit()函数是Python中用于判断字符串是否全为数字的函数,当字符串中只有数字时返回True,否则返回False。然而,对于负数,isdigit()函数在判断时会忽略负号。

问题分析

例如,我们来尝试判断负数字符串'-123'是否全为数字:

>>> '-123'.isdigit()
True

结果竟然是True,虽然看起来这显然不对。这是因为isdigit()函数在判断时会忽略掉字符串中的负号。

解决方案

为了解决这个问题,我们需要自定义一个函数来对负数进行判断。我们可以先判断字符串中是否存在负号,如果存在负号则判断负号后面的部分是否全为数字,否则判断整个字符串是否全为数字。

下面是一个示例函数:

def is_number_string(s):
    if s[0] == '-':
        return s[1:].isdigit()
    return s.isdigit()

使用示例:

>>> is_number_string('-123')
True
>>> is_number_string('123')
True
>>> is_number_string('12.3')
False
注意事项

该函数仅适用于判断整数字符串是否全为数字,对于浮点数或其他复杂字符串可能无法准确判断。在使用时需要注意判断场景和字符串格式。