如何获得字符串中的浮点数?

时间:2019-10-25 15:06:39

标签: python

编写一个程序,输入一个字符串,然后将所有数字字符串放入字符串中(除了尾标点符号,它可以是整数或浮点数,例如'100times',N0; '56 .78.23'句子末尾的“ 45.78。”(是;或一个数字)转换为浮点数并输出。如果没有数字字符串,则输出:“未找到!”。字符串中可能包含以下标点符号:“,”,“。”,“”,“?”和“!”,标点符号不会连续出现。

示例:

string = " one 5.67 two 56.78.23 three 34 four 45.78. "

结果:

['5.67','45.78','34']

1 个答案:

答案 0 :(得分:1)

我这样做的方法是拆分字符串,并尝试强制转换为浮动在try / except子句中:

def find_floats(string):
    for i in string.rstrip('. ').split():
        try:
            float(i)
            yield i
        except ValueError:
            pass

list(find_floats(string))
# ['5.67', '34', '45.78.']