我想要做的是验证一个字符串是否为数字--浮点数--但我没有找到一个可以做到这一点的字符串属性。也许并没有这样的属性。我对这段代码有问题:
N = raw_input("Ingresa Nanometros:");
if ((N != "") and (N.isdigit() or N.isdecimal())):
N = float(N);
print "%f" % N;
正如你所看到的,我需要提取数字,包括十进制和浮点数。 N.isdecimal()
无法解决我的问题。
”是真的,如果
N中的每个字符都是数字。这对于
3.14来说是不正确的。你在问“每个字符是否都是数字,或者每个字符都是小数点?”而你想要问的是“每个字符都是数字或小数点”,可以写成
all(ch.isdigit() or ch.isdecimal() for ch in N)。当然,这仍然不能针对例如
-3.14或其他完全有效的
floats。这就是“宁可问候不要批准”的许多原因之一——但了解
isdigit`仍然是值得的。 - abarnert