← Все вопросы
Как красиво вывести проценты и деньги через форматирование в Python?
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 символов — удобно для таблиц-чеков.
Ваш ответ
Войдите, чтобы ответить на вопрос.