Python 如果字符串是数字,如何检查它的类型并将其转换为float?
我有这样的字符串:Python 如果字符串是数字,如何检查它的类型并将其转换为float?,python,Python,我有这样的字符串: "Some Test" "00000.sds*Som'e 'Test'01/234232" "Some Test'01/234232" "14" "12.523232" "-12.523232" Python中检查字符串内容以确定是否可以将其强制转换为“float(stringvalue)”,或者它是否必须保持为字符串的最佳方法是什么(使用某些函数)?结果输出需要是: "Some Test" "Some Test'01/234232" "00000.sds*Som'e 'T
"Some Test"
"00000.sds*Som'e 'Test'01/234232"
"Some Test'01/234232"
"14"
"12.523232"
"-12.523232"
Python中检查字符串内容以确定是否可以将其强制转换为“float(stringvalue)”,或者它是否必须保持为字符串的最佳方法是什么(使用某些函数)?结果输出需要是:
"Some Test"
"Some Test'01/234232"
"00000.sds*Som'e 'Test'01/234232"
14
12.523232
-12.523232
首选方法是尝试执行强制转换并捕获ValueError:
def cast(numeric_string):
try:
return float(numeric_string)
except ValueError:
return numeric_string
这里的问题是你不知道它是否有效。为了避免检查类型,还可以返回一个带有成功结果的2元组:
def try_cast(numeric_string):
try:
return True, float(numeric_string)
else:
return False, numeric_string
然后,要使用,您可以执行以下操作:
did_cast, value = try_cast(my_string)
if did_cast:
# treat value as a number
else:
# treat value as a string
或者更好的是尝试强制转换(int,some,val)
,尝试强制转换(datetime.datetime,some,val)
,等等