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