要判断一个字符串是否是小数:
1先判断小数点的个数,即如果是小数,则必须有且仅有一个'.'号
2再分别判断'.'号的左右两边是否是数字:
判断左边时,如果负数,则左边包含'-'号:必须以'-'号开头(校验 3-3.444 这样的字符串);在'-'号右边必须至少有一位数字校验(-.333 这样的字符串)
判断右边小数位则仅需是数字即可
代码实现如下:
def is_float(s):
s =str(s)
if s.count('.')==1:
new_s = s.split('.')
left_num = new_s[0]
right_num = new_s[-1]
if right_num.isdigit():
if left_num.isdigit():
return True
elif left_num.count('-')==1 and left_num.startswith('-'):
tmp_num = left_num.split('-')[-1]
if tmp_num.isdigit():
return True
return False
s_in = input("请输入您要判断的字符串:
")
print(is_float(s_in))