Python Удалить запятую в долларах - PullRequest
13 голосов
/ 03 марта 2011

Используя Python v2, пользователь вводит сумму в строку, как показано ниже:

RawPurchaseAmount = raw_input("Please enter purchase amount: ")

PurchaseAmount = float(RawPurchaseAmount.strip().lstrip("$"))

Это удаляет все пробелы в начале ввода и удаляет знак $, если он

Есть ли способ удалить символ запятой, если он введен?То есть: $ 10 000,00, чтобы стать 10000,00

Спасибо за любую помощь.

Ответы [ 4 ]

28 голосов
/ 03 марта 2011

Вы можете использовать replace для удаления всех запятых:

"10,000.00".replace(",", "")

20 голосов
/ 03 марта 2011
>>> import re
>>> re.sub("[^\d\.]", "", "$1,000,000.01")
'1000000.01'

Шаблон регулярного выражения говорит: «все, что не является числом или десятичной точкой».Все, что соответствует этому регулярному выражению, заменяется на "".

Возможно, вам следует помнить, что некоторые европейские страны используют.как разделитель тысяч и как десятичный знак.

Таким образом, «один миллион евро и 5 центов» может составлять € 1.000.000,05 или € 1,000,000.05

3 голосов
/ 03 марта 2011
>>> x = '$10,00.00'
>>> ''.join(e for e in x if e.isdigit() or e == '.')
'1000.00'

Удалите $, любой другой символ, кроме цифры или . за один раз.

1 голос
/ 03 марта 2011

Обновление Ответ Стивена Полгера лучше .

Оригинальный ответ

Если вы не возражаете против регулярных выражений, вытакже можно заменить $ и , за один раз.Примерно так:

>>> import re
>>> RawPurchaseAmount
'$10,000'
>>> re.sub('[\$,]', '', RawPurchaseAmount)
'10000'
>>> 

Не забудьте скомпилировать регулярное выражение, если вы планируете делать это много раз в одной и той же программе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...