Есть строка, берущаяся из интернета в текстовом формате, которая выглядит примерно так «27,35 руб.»

Как сделать так, чтобы из неё бралось только числовое значение, с которым можно производить математические расчёты? В данный момент, если я пытаюсь их произвести например с первым символом этой строки, (допустим умножение на 2), то он не считает 2*2= 4, а пишет 22, принимая двойку за текст, а не в качестве числа. Заранее спасибо.


Ответы (1 шт):

Автор решения: icYFTL
_s = '23,75 руб.'
print(float(_s.replace(',', '.').replace(' руб.', '')) * 2.0)

Но так как существует некоторое недопонимание, то более универсальное решение:

import re

_s = '23,75 руб.'
_s = re.sub(r'(?=.*)?[^0-9,]+|^$', '', _s)
_s = _s.replace(',', '.')
_s = float(_s)
print(_s * 2.0)
→ Ссылка