我需要检查一个字符串是否为十进制/浮点数的形式。
我尝试使用isdigit()、isdecimal()和isnumeric(),但它们不能用于浮点数。我也不能使用try:并转换为浮点数,因为这会将像"12.32"这样的东西转换为浮点数,即使有前导空格。如果有前导空格,我需要能够检测到它,这意味着它不是十进制数。
我希望"5.1211"作为十进制数返回true,以及"51231"。然而,像"123.12312.2"这样的内容不应该返回true,以及任何带有空格的输入,如"123.12"或"123. 12"。
我尝试使用isdigit()、isdecimal()和isnumeric(),但它们不能用于浮点数。我也不能使用try:并转换为浮点数,因为这会将像"12.32"这样的东西转换为浮点数,即使有前导空格。如果有前导空格,我需要能够检测到它,这意味着它不是十进制数。
我希望"5.1211"作为十进制数返回true,以及"51231"。然而,像"123.12312.2"这样的内容不应该返回true,以及任何带有空格的输入,如"123.12"或"123. 12"。
float
所接受的内容,则需要明确指定哪些内容是可接受的。例如:应该接受.12
吗?12.
?1e6
?+1.23
?123_456.789
?−123
(带有Unicode减号) ? - Mark Dickinson