내가 원하는 것은 문자열이 숫자인지 (float인지) 확인하는 것이지만이를 수행하는 문자열 속성을 찾지 못했습니다. 어쩌면 하나도 없을지도 모른다. 이 코드에 문제가 있습니다 :문자열이 유효한 float인지 어떻게 확인할 수 있습니까?
N = raw_input("Ingresa Nanometros:");
if ((N != "") and (N.isdigit() or N.isdecimal())):
N = float(N);
print "%f" % N;
내가 알기로는, 소수점 또는 부동 소수점 숫자 만 사용하면됩니다. N.isdecimal()
는 내가 염두에두고있는 문제를 해결하지 못합니다.
파이썬 진언은 *입니다 * '용서하지 허가를 요청합니다.'- 그것을 시도하고 문제 발생시 예외를 잡을 수있어. –
코드가 작동하지 않는 이유를 알고 싶다면'N.isdigit()'의 'N'에있는 모든 문자가 숫자 일 경우 true입니다. '3.14'는 그렇지 않습니다. 당신은 "모든 문자가 한 자리입니까? 아니면 모든 문자가 소수입니까?"라고 묻고 있습니다. "각 문자가 숫자인지 소수인지"를 묻고 싶을 때,'모두 (ch.isdigit() 또는 ch.isdecimal()에 철자가 있어야 함) '라고 물어볼 때. 물론,'-3.14' 또는 다른 완벽하게 유효한'float's에 대해서는 여전히 작동하지 않을 것입니다. 그것은 "용서보다 용서를 구하기가 더 쉽다"는 "한 가지 방법"이라고하는 많은 이유 중 하나입니다.하지만 여전히 'isdigit'에 대한 이해는 가치가 있습니다. – abarnert