我有像:
这样的字符串"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
答案 0 :(得分:2)
首选方法是尝试执行强制转换并捕获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