Python判断输入的字符串是整数还是浮点数

 不使用内置方法,新手写代码判断输入的字符串是整数还是浮点数。

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)

#用正则表达式或内置方法会省很多功夫。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值