我想要做的是驗證一個字符串是否是數字 - 一個浮點數 - 但我還沒有找到一個字符串屬性來做到這一點。也許沒有一個。我有一個問題與此代碼:如何驗證字符串是否是有效的浮點數?
N = raw_input("Ingresa Nanometros:");
if ((N != "") and (N.isdigit() or N.isdecimal())):
N = float(N);
print "%f" % N;
正如你所看到的,我需要的是隻取數字,十進制或浮動。 N.isdecimal()
不能解決我心中的問題。
Python的口頭禪是*「請求原諒,而不是許可。」 * - 嘗試它,捕捉到的異常,如果它出錯。 – 2013-02-19 02:11:38
如果你想知道你的代碼爲什麼不起作用:如果'N'中的每個字符都是數字,則'N.isdigit()'爲真。對於'3.14'來說不是這樣。你問:「每個字符都是數字,還是每個字符都是小數?」當你想要問「每個字符是一個數字還是一個小數」時,它將被拼寫爲'all(ch.isdigit()或ch.isdecimal()for ch in N)'。當然,這對於例如'-3.14'或其他完全有效的'float'來說仍然不起作用。這是「容易要求寬恕而不是權限」的許多原因之一,「這是做到這一點的一種方式」 - 但它仍然值得理解「isdigit」。 – abarnert 2013-02-19 02:29:48