如果字符串是数字,如何检查它的类型并将其转换为float?

2024-05-19 14:43:41 发布

您现在位置: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 'Test'01/234232"
14
12.523232
-12.523232

Tags: 方法函数字符串test内容somefloatsds
1条回答
网友
1楼 · 发布于 2024-05-19 14:43:41

首选方法是尝试执行强制转换并捕获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

相关问题 更多 >