python - 判断输入的字符串是否可以转化为浮点数

    技术2022-07-10  107

    Python 正则表达式 | 菜鸟教程

    今天仍然继续浮点数,上午写出来了,十进制下对2乘除。但最初就搞错了些东西。 下午看到一篇以二进制的角度转换浮点数存储的文章,哇!虽然里面仍有些奇怪的地方。 打算照着那篇再码出来,现在十点多了,告一段落对输入字符是否可以转换为浮点数的判断,挺长挺乱的!

    import re while 1: num = str(input("输入一个数,显示其浮点数在二进制中的存储:")) if ((not re.compile("[^0-9.\-+]+").findall(num)) \ #不包含这些以外的字符 and re.compile("[0-9]+").findall(num) \ #必须包含数字 and ((num.count("-") == 0 and num.count("+") == 0) \ #要么没正负号,要么有正号且在首位,要么有负号且在首位 or (num.count("+") == 0 and num.count("-") == 1 and num[0] == "-") \ or (num.count("-") == 0 and num.count("+") == 1 and num[0] == "+")) \ and (num.count(".") == 0 or num.count(".") == 1)): #要么没小数点,要么有一个小数点 print(1) else: print(0)

    至于nan、inf、-inf很好处理,只要填在这个判断之前过一遍即可。

    Processed: 0.021, SQL: 9