欢迎访问宙启技术站
智能推送

判断是否是数字:Python中判断一个字符串是否是数字的函数使用技巧

发布时间:2023-10-27 00:36:14

在Python中,判断一个字符串是否是数字可以使用以下的函数使用技巧:

1. isdigit()函数:可以用来判断一个字符串是否只包含数字字符。该函数返回True表示字符串全是数字,返回False表示存在非数字字符。这个函数只能判断整数,不能判断小数或负数。

示例代码:

def is_number(string):
    return string.isdigit()

print(is_number("12345"))  # 输出True
print(is_number("12.34"))  # 输出False
print(is_number("-123"))   # 输出False

2. isnumeric()函数:类似isdigit()函数,它也可以用来判断一个字符串是否只包含数字字符。与isdigit()函数不同的是,isnumeric()函数可以处理更多类型的数字字符,例如Unicode字符中的数字字符。

示例代码:

def is_number(string):
    return string.isnumeric()

print(is_number("12345"))   # 输出True
print(is_number("12.34"))   # 输出False
print(is_number("-123"))    # 输出False
print(is_number("3"))       # 输出True,3是Unicode中的数字字符

3. isdecimal()函数:也是判断一个字符串是否只包含数字字符的函数,类似isdigit()和isnumeric()函数。与这两个函数不同的是,isdecimal()函数只能判断10进制数字字符。

示例代码:

def is_number(string):
    return string.isdecimal()

print(is_number("12345"))  # 输出True
print(is_number("12.34"))  # 输出False
print(is_number("-123"))   # 输出False

需要注意的是,以上的这些函数只能判断字符串中是否只包含数字字符,不能判断字符串是否表示一个有效的数字。如果需要完整的数字判断功能,可以使用Python的内置函数eval(),将字符串作为表达式进行求值,并捕获可能发生的异常。

def is_number(string):
    try:
        float(string)
        return True
    except ValueError:
        return False

print(is_number("12345"))  # 输出True
print(is_number("12.34"))  # 输出True
print(is_number("-123"))   # 输出True
print(is_number("123a"))   # 输出False