Программирование на Python. Яндекс Учебник. Вещественные числа
Дан текст на русском языке, в котором встречаются корректно записанные числа. Все действительные числа записаны через точку. В тексте может быть несколько предложений, заканчивающихся на точку, восклицательный или вопросительный знак. Все предложения разделяются пробелом.
Выведите все числа из текста в столбик.
Ввод
Добрый день. Сегодня чисел у меня 3. Одно из них — это 5.4. Ещё есть 3.14 и 7.8.

Не могу убрать лишние точки...
import re
x = input()
p = '[\d]*[.]+[.,\d]+[\d]*[.][\d]*[.]+|[\d]*[.][\d]+|[\d]+'
if re.search (p, x) is not None:
for catch in re.finditer(p, x):
print(catch[0])
s = input()
k = 0
s = ' ' + s
s = s.replace('. ', '')
for i in range(len(s) - 1):
if s[i] == ' ' and s[i+1].isdigit():
k += 1
print(k)
s = input().split(' ')
for i in s:
if '0'<=i<='9':
if i[-1]=='.' or i[-1]=='?' or i[-1]==',':
print(i[:-1])
else:
print(i)
text = input()
alf = '0123456789'
word = text.split()
print(word)
cnt = 0
for i in range(len(word)):
if word[i][0] in alf:
print(word[i][0])
cnt+=1
print(cnt)
s = input()
k = 0
s = ' ' + s
s = s.replace('. ', '')
s1=""
for i in range(len(s)):
if s[i].isdigit() or s[i]==".":
s1+=s[i]
elif s[i]==" " and s1!="":
print(s1)
s1=""
if s1!=0:
if s1[len(s1)-1].isdigit():
print(s1)
else:
print(s1[:-1])