| 
 
| 近期学习了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)
 
 
 
 | 
 |