不使用内置方法,新手写代码判断输入的字符串是整数还是浮点数。
def check_null(number):#第一步简单筛选是否空值和前2位字符。 if number != '' and number != '+' and number != '-' and number[:2] != '-.' and number[:2] != '+.': check_other_charaters(number)#进入第二步。 else: print('输入为空或含有空格键,请重新输入:') number = input() check_null(number) def check_other_charaters(number):#第二步检测是否含有非数字的符号 for i in str(number): if i in '+-0123456789.': num = True else: num = False break if num: check_number(number)#进入第三步。 else: print('''输入含有'+-0123456789.'以外的符号,请重新输入:''') number = input() check_null(number) def check_number(number):#第三步检测数字是否符合整数和浮点数特征。 period = 0 plus_minus = 0 for i in str(number): if i == '.': period += 1 elif i == '+' or i == '-': plus_minus += 1 else: continue #统计+-.符号数量 if plus_minus > 1 or period > 1 or number[0] == '.': print('''输入含有多余的'+-.',请重新输入:''') number = input() check_null(number) elif plus_minus == 1 and (number[0] not in '+-'): print('''输入含有多余的'+-.',请重新输入:''') number = input() check_null(number) else: if period == 1: print(number,'是浮点数。') else: print(number,'是整数。') number = input('输入一个字符串,判断是整数还是浮点数:\n') check_null(number) #用正则表达式或内置方法会省很多功夫。