编写一个程序,输入一个字符串,然后将所有数字字符串放入字符串中(除了尾标点符号,它可以是整数或浮点数,例如'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']
答案 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.']