Вы можете использовать регулярное выражение для извлечения числа с плавающей запятой:
import re
S = "Weight is 3.5 KG"
pattern = re.compile(r'\-?\d+\.\d+')
weights = list(map(float, re.findall(pattern, S)))
print(weights)
re.findall()
вернет вам список чисел, найденных в тексте. Функция map
преобразует результаты списка в число с плавающей запятой. Поскольку он возвращает генератор, вам необходимо преобразовать его в list
.