python 中判断字符串能否转换为数字类型

方法一: isdigit() 不可识别汉字 小数类型
str1 = '1'

str2 = '2.1'

str3 = '三'

str4 = '3.3.3.3'

print(str1.isdigit())

print(str2.isdigit())

print(str3.isdigit())

print(str4.isdigit())

结果:

True
False
False
False
方法二: isdecimal() 没有与方法一发现区别
str1 = '1'

str2 = '2.1'

str3 = '三'

str4 = '3.3.3.3'

print(str1.isdecimal())

print(str2.isdecimal())

print(str3.isdecimal())

print(str4.isdecimal())

结果:

True
False
False
False
方法三: isnumeric() 可以识别汉字
str1 = '1'

str2 = '2.1'

str3 = '三'

str4 = '3.3.3.3'

print(str1.isnumeric())

print(str2.isnumeric())

print(str3.isnumeric())

print(str4.isnumeric())

结果:

True
False
True
False
唯独没有找到可以识别小数的.
识别小数使用try 来判断
try:
    float(str2)
    print('is True')
except:
    print(' is False ')


try:
    float(str1)
    print('is True')
except:
    print(' is False ')

运行结果:

is True
is True

由此可见. float对整数和小数都有效. 那么为了判断字符串到底能不能转换为数字.我们加一个方法稍稍改动一下就可以了:

def is_number(target_str):
    try:
        float(target_str)
        return True
    except:
        pass
    if target_str.isnumeric():
        return True
    return False

print(is_number(str1))
print(is_number(str2))
print(is_number(str3))
print(is_number(str4))

这样就OK拉. 快去试试吧

你可能感兴趣的:(python 中判断字符串能否转换为数字类型)