2026, Jan 07 00:03
Как вывести число с одной цифрой после запятой и C без пробела в Python
Разбираем, почему возникает пробел между 36.4 и C, и как правильно форматировать вывод в Python: f-строки, точность .1f, рабочие примеры без лишних символов.
При форматировании числового вывода в Python даже крошечный пробел может нарушить ожидаемую строку. Частая ситуация: вы печатаете число с плавающей точкой с одним знаком после запятой, добавляете единицу вроде C — и получаете нежелательный зазор между числом и буквой.
Проблема
Задача: прочитать число с плавающей точкой, оставить ровно одну цифру после десятичной точки и сразу дописать букву C.
temp_value = float(input())
print('{:C>.1f}'.format(temp_value), 'C')
На выходе получается что-то вроде 36.4 C, тогда как ожидается 36.4C.
Что происходит
Здесь смешались два независимых момента. Во‑первых, когда число и литерал C выводятся как отдельные аргументы, между ними в итоговой строке появляется пробел. Поэтому вы видите 36.4 C вместо 36.4C. Во‑вторых, символ C внутри спецификатора формата в {:C>.1f} — это не суффикс, а заполнитель. Он работает только вместе с явной шириной. Например, если задать ширину, поле будет дополняться символом C слева: '{:C>10.1f}'.format(123.456) даст CCCCC123.5. Это дополнение не связано с добавлением единицы измерения справа от числа.
Решение и рабочие примеры
Проще всего получить точную строку без лишнего пробела — сформировать одну форматированную строку и поместить C прямо в неё.
reading = float(input())
print(f"{reading:.1f}C")
Так выведется число, округлённое до одного знака после запятой, и C будет прилегать вплотную. Если нужно просто приписать единицу измерения, не меняя точность, можно написать:
reading = float(input())
print(f"{reading}C")
Также можно явно контролировать количество знаков после запятой, сохраняя при необходимости завершающие нули:
reading = float(input())
print(f"{reading:.2f}C") # две цифры после запятой
reading = float(input())
print(f"{reading:.3f}C") # три цифры после запятой
Почему это важно
Форматирование строк требовательно к мелочам. Одного пробела или пропущенного нуля в конце достаточно, чтобы изменить результат и сломать сравнение строк. Понимание того, как работают спецификаторы формата, и умение собирать единую итоговую строку помогают получать детерминированные, воспроизводимые результаты.
Выводы
Объединяйте число и его единицу измерения в одной форматированной строке, чтобы избежать непреднамеренных пробелов. Помните: символы вроде C внутри спецификатора — это заполнитель, он влияет только на заполнение при заданной ширине. Для точного контроля числа знаков после запятой используйте точность .nf в f-строках, чтобы вывод соответствовал задуманному символ в символ.