是否有内置方法来检查字符串是否可以转换为浮点数?
Is there built-in way to check if string can be converted to float?
我知道有一些方法可以检查 str 是否可以使用 try-except 或正则表达式进行转换,但我一直在寻找(例如)str 方法,例如
str.isnumeric()
str.isdigit()
str.isdecimal() # also doesn't work for floats
但找不到。
有没有我没找到的?
最简单的方法就是尝试将其变成浮点数。
try:
float(str)
except ValueError:
# not float
else:
# is float
我建议使用 try except 子句的请求宽恕而不是许可方法:
str_a = 'foo'
str_b = '1.2'
def make_float(s):
try:
return float(s)
except ValueError:
return f'Can't make float of "{s}"'
>>> make_float(str_a)
Can't make float of "foo"
>>> make_float(str_b)
1.2
正如 Macattack and Jab, you could use try except, which you can read about in python's docs or w3school's tutorial 所述。
Try Except 子句的形式为:
try:
# write your code
pass
except Exception as e: # which can be ValueError, or other's exceptions
# deal with Exception, and it can be called using the variable e
print(f"Exception was {e}") # python >= 3.7
pass
except Exception as e: # for dealing with other Exception
pass
# ... as many exceptions you would need to handle
finally:
# do something after dealing with the Exception
pass
有关 built-in 例外情况的列表,请参阅 python's docs。
我知道有一些方法可以检查 str 是否可以使用 try-except 或正则表达式进行转换,但我一直在寻找(例如)str 方法,例如
str.isnumeric()
str.isdigit()
str.isdecimal() # also doesn't work for floats
但找不到。 有没有我没找到的?
最简单的方法就是尝试将其变成浮点数。
try:
float(str)
except ValueError:
# not float
else:
# is float
我建议使用 try except 子句的请求宽恕而不是许可方法:
str_a = 'foo'
str_b = '1.2'
def make_float(s):
try:
return float(s)
except ValueError:
return f'Can't make float of "{s}"'
>>> make_float(str_a)
Can't make float of "foo"
>>> make_float(str_b)
1.2
正如 Macattack and Jab, you could use try except, which you can read about in python's docs or w3school's tutorial 所述。
Try Except 子句的形式为:
try:
# write your code
pass
except Exception as e: # which can be ValueError, or other's exceptions
# deal with Exception, and it can be called using the variable e
print(f"Exception was {e}") # python >= 3.7
pass
except Exception as e: # for dealing with other Exception
pass
# ... as many exceptions you would need to handle
finally:
# do something after dealing with the Exception
pass
有关 built-in 例外情况的列表,请参阅 python's docs。