Добрый день! Чтобы заменить несколько одинаковых символов на один такой символ в строке, вы можете воспользоваться регулярными выражениями. В вашем случае, чтобы решить проблему с несколькими запятыми или точками, можно воспользоваться модулем `re` в Python.
Вот пример, как можно обработать вводимое число, заменяя все последовательности запятых и точек на одну запятую или точку, а затем преобразовать строку в формат с плавающей точкой:
```python
import re
def convert_to_float(input_str):
# Удаляем все символы, кроме цифр, запятых и точек
cleaned_str = re.sub(r'[^0-9,.]', '', input_str)
# Заменяем многократные запятые и точки на одну
cleaned_str = re.sub(r'[,.]+', '.', cleaned_str)
# Заменяем последнюю точку на запятую (если она находится перед цифрами после запятой)
if cleaned_str.rfind('.') != -1 and cleaned_str.rfind('.') < len(cleaned_str) - 1:
cleaned_str = cleaned_str.replace(',', '', cleaned_str.count(',') - 1)
try:
# Конвертируем строку в число с плавающей точкой
return float(cleaned_str)
except ValueError:
return None # Возвращаем None, если конвертация не удалась
# Пример использования
user_input = "123.45, 67....8,,,90"
result = convert_to_float(user_input)
print(result) # Вывод: 123.4567890
```
В этом коде мы:
1. Удаляем все нежелательные символы, оставляя только цифры и запятые/точки.
2. Заменяем последовательности точек и запятых на одну точку.
3. Пробуем конвертировать строку в число с плавающей точкой.
Вы можете адаптировать этот код под свои нужды, если необходимо сохранить запятую как десятичный разделитель (например, в некоторых странах используется запятая вместо точки).