← Все вопросы

Как отцентрировать текст по ширине, заполнив края символами?

Задан 11 месяцев назад439 просмотров4 ответа
9

Хочу вывести заголовок по центру в поле шириной 30, а пустоту по бокам забить, например, дефисами: '------ Меню ------'. Руками считать пробелы — боль. Есть метод?

4 ответа

16

Метод str.center(width, fillchar):

print('Меню'.center(30, '-'))
# -------------Меню-------------
print('Меню'.center(30))   # пробелами по умолчанию

Есть и братья: ljust (по левому краю) и rjust (по правому). Если строка уже длиннее width, она вернётся без изменений.

Амина Азизова ljust/rjust тоже берут fillchar вторым аргументом · 10 месяцев назад
6

Сделай через f-строку: f'{"Меню":-^30}' — тот же эффект, центрирование с заполнением дефисом.

Сергей Попроцкий О, не знал что в format-спеке можно центрировать, удобно · 10 месяцев назад
5

Если строка длиннее ширины — center ничего не обрежет, просто вернёт как есть. На это иногда натыкаются.

4

'Меню'.center(30, '-').

Ваш ответ

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