近期学习了Python中字符串的 .isdigit() .isdecimal() .isnumeric()方法,发现这三者均不能判断一个小数是否为数,比如1.23。于是练习写了一段判断字符串是否为数的函数,包含了浮点型的判断,抛砖引玉,请大佬轻拍...
def isnumber(num):
if num.isdecimal(): # 是整形就不用判断了
num = int(num)
elif num.find('.') == num.rfind('.') and num.find('.') != -1: # 左右都搜索“.”,如果索引存在且一致,说明只有一个“.”
num_1 = num[:num.find('.')] + num[(num.find('.')+1):] # 这里把“.”给剔除掉
if num_1.isdecimal(): # 把“.”剔除掉后再判断是否是数
num = float(num)
else:
print('%s is not a number.' % num)
return False
else:
print('%s is not a number.' % num)
return False
print('%s is a number, type: %s' % (num, type(num)))
return True
num0 = input('Please input a string: ')
isnumber(num0)
|
|