← Все вопросы

Как красиво вывести проценты и деньги через форматирование в Python?

Задан 15 месяцев назад628 просмотров3 ответа
16

Надо вывести 0.1234 как 12.3% и 1234567 как 1 234 567. Как это сделать через f-строки, чтобы не городить вручную?

3 ответа

27
✓ Принятый ответ — помог автору

Всё это умеют спецификаторы формата внутри f-строк:

p = 0.1234
print(f'{p:.1%}')        # 12.3%   — %  сам умножает на 100

money = 1234567
print(f'{money:,}')      # 1,234,567  — запятые-разделители
print(f'{money:,}'.replace(',', ' '))  # 1 234 567 (пробелы)

price = 1999.5
print(f'{price:,.2f} ₽')  # 1,999.50 ₽

Обрати внимание: :% сам домножает долю на 100 и ставит знак процента, вручную считать не надо.

Снежана Лебедева Ещё есть :_ — разделитель подчёркиванием, тоже бывает удобно · 15 месяцев назад
Дарина Козлова Для пробела как разделителя тысяч в Python нет встроенного, поэтому .replace — норм приём · 15 месяцев назад
9

f'{x:.1%}'.

4

Ширину и выравнивание тоже можно: f'{price:>10.2f}' прижмёт вправо в поле из 10 символов — удобно для таблиц-чеков.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект