黑马程序员技术交流社区

标题: 技术笔记 [打印本页]

作者: Aldebaran    时间: 2019-3-27 13:00
标题: 技术笔记
近期学习了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)



作者: Aldebaran    时间: 2019-3-27 22:53
def isnumber(num):
    try:
        print(float(num), '是数')
    except:
        print('%s非数' % num)

num0 = input('Please input a string: ')
isnumber(num0)

好像这样也可以。
作者: Aldebaran    时间: 2019-3-27 22:54
def isnumber(num):
    try:
        print(float(num), '是数')
    except:
        print('%s非数' % num)

num0 = input('Please input a string: ')
isnumber(num0)
这个好像也可以
作者: Aldebaran    时间: 2019-3-27 22:56
def isnumber(num):
    try:
        print(float(num), '是数')
    except:
        print('%s非数' % num)

num0 = input('Please input a string: ')
isnumber(num0)
这个好像也可以




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2