Как при выводе на печать использовать запятую в качестве десятичной точки

Подскажите пожалуйста как сделать так, чтобы вывод float(нецелого числа) был с запятой, а не точкой? Такой код:

a=float(int(input()))
print(a)

возвращает: 1.14 а мне нужно: 1,14

Как это можно реализовать


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

Автор решения: V S

Если данный формат нужен только для вывода на печать, то можно привести ваше значения "a" к типу string и заменить "." на "," используя replace():

a = float(int(input()))
a = str(a).replace(".", ",")

Либо, как уже писали, поменять локаль, чего делать также не рекомендую.

→ Ссылка
Автор решения: MarianD

Короткий ответ

Примените стандартный модуль locale:

print(locale.str(a))          # выводит 1,14

Долгий ответ:

  1. Ваш код никогда не может вывести 1.14, потому что ваша команда

    a=float(int(input()))
    

    ожидает только целые числа - в противном случае выводит ошибку

    ValueError: invalid literal for int() with base 10: '1.14'
    

    Вы вероятно хотели

    a = float(input())
    
  2. Для вывода локализованных версий значений предназначен модуль locale;
    для перевода числа a типа float применяется его функция str():

    locale.str(a)         # 1,14   (или 1.14 в другой, например английской локализации)
    
  3. Значит, вся ваша программа может быть такой:

    import locale
    
    a = float(input())
    print(locale.str(a))
    

  1. Когда бы у вас было неправильно установлена среда (например на английскую) - что очень невероятно — примените после импорта команду

    locale.setlocale(locale.LC_ALL, "")        # для операционной системы
    

    или (например)

    locale.setlocale(locale.LC_ALL, "ru_RU")
    
→ Ссылка