问题:
unindent does not match any outer indentation level 此错误是缩进有问题
# 1.98
# -2.50
# retrun True
# retrun False
# 1.98
# 1.98.23
# -1.90
# 需求分析:
#1、 小数点个数 .count()
# 2、按照小数点进行分割 1.98 [1,98] s.87 98.s1
#3、正小数:小数点左边是整数 右边也是整数 .isdigits()
# 负小数:小数点左边是以负号开头,但是只有一个负号,右边也是整数 -9.85
def is_float(s): s = str(s) if s.count('.')==1:#小数点个数 s_list = s.split('.') left = s_list[0] #小数点左边 right = s_list[1] #小数点右边 if left.isdigit() and right.isdigit(): #正小数 return True elif left.startswith('-') and left.count('-')==1 and left.split('-')[1].isdigit() and right.isdigit(): #判断合法负小数 return True return False res=is_float(1.2) print(res)
解释:定义一个函数,给函数传值(整数、字符串),第一步先转换字符类型,无论传的是什么类型的值,都转成字符串类型(因要后面要对字符串做处理判断),用.分割取出小数点左两边的值;如果左边的值等于正整数,右边的值也等于正整数;返回真(判断合法正小数)
判断合法负小数:开头是负号开头并且只有一个符号,用负号分割,判断左右两边的取值为正整数;为真,其余均为假;