Это не самый эффективный способ сделать это, но с помощью регулярных выражений мы можем разделить переменную на разные части и посчитать «последнюю» из них, чтобы решить, как выполнить перевод.
import re
values = """111
111.00
111,00
11,111.00
11.111,00
11,111,111.00
11.111.111,00
111.111
111,111
111.111,00
111,111.00"""
values = [i for i in values.split("\n")]
for value in values:
value = re.split(r"\.|,", value.strip())
if len(value[-1]) <=2 and len(value) > 1:
newVal = float("".join(value[:-1]) + "." + value[-1])
else:
newVal =float("".join(value))
print(newVal)
Вывод:
111.0
111.0
111.0
11111.0
11111.0
11111111.0
11111111.0
111111.0
111111.0
111111.0
111111.0
РЕДАКТИРОВАТЬ: я не дезинфицировал свои входные данные, первая версия включала некоторые пробелы, бросая перевод в al oop.