如何验证字符串是否为有效的浮点数?

p1r*_*1r0 3 python string validation numbers

我想要做的是验证一个字符串是否是数字 - 浮点数 - 但我没有找到一个字符串属性来执行此操作.也许没有一个.我有这个代码的问题:

N = raw_input("Ingresa Nanometros:");
if ((N != "") and (N.isdigit() or N.isdecimal())):
    N = float(N);
    print "%f" % N;
Run Code Online (Sandbox Code Playgroud)

如你所见,我需要的是只取十进制或浮点数.N.isdecimal()并没有解决我想到的问题.

Rus*_*hal 10

try:
    N = float(N)
except ValueError:
    pass
except TypeError:
    pass
Run Code Online (Sandbox Code Playgroud)

这会尝试转换Nfloat.但是,如果不可能(因为它不是数字),它将pass(什么都不做).

我建议你阅读tryexcept阻止.

你也可以这样做:

try:
    N = float(N)
except (ValueError, TypeError):
    pass
Run Code Online (Sandbox Code Playgroud)

  • `除了(ValueError,TypeError)至少为e:pass` (3认同)