У меня проблема с созданием функции, которая принимает строку, содержащую значения длины (например: '32 .0 мм / 1.259 "`), и возвращает только значение в мм .
Мой текущийФункция parse
может обрабатывать только строки, имеющие только значение мм , но только если существуют значения мм и дюйма .
Любая помощь приветствуется!
Шаблон регулярного выражения: re.sub("[^0-9.\-]", "", str)
import re
def parse(str):
if not str:
return None
str = str.lower()
return float(re.sub("[^0-9.\-]", "", str))
tests = ['12.3 mm', '12.3mm', '32.0 mm / 1.259"', '32.0mm / 1.259"']
for s in tests:
print( parse(s) )
Ожидаемый результат
12.3
12.3
32.0
32.0
Фактический объем производства
12.3
12.3
ValueError: could not convert string to float: '32.01.259'