Строка центра python с использованием спецификатора формата - программирование

Строка центра python с использованием спецификатора формата

У меня есть строка с именем Message.

Message = "Hello, welcome!\nThis is some text that should be centered!"

Да, это просто тестовое выражение...

И я пытаюсь центрировать его для окна терминала по умолчанию, то есть ширины 80, с этим утверждением:

print('{:^80}'.format(Message))

Какие принты:

           Hello, welcome!
This is some text that should be centered!           

Я ожидаю что-то вроде:

                                Hello, welcome!                                 
                   This is some text that should be centered!                   

Любые предложения?

4b9b3361

Ответ 1

Вам нужно центрировать каждую строку отдельно:

'\n'.join('{:^80}'.format(s) for s in Message.split('\n'))

Ответ 2

Вот альтернатива, которая автоматически центрирует ваш текст на основе самой длинной ширины.

def centerify(text, width=-1):
  lines = text.split('\n')
  width = max(map(len, lines)) if width == -1 else width
  return '\n'.join(line.center(width) for line in lines)

print(centerify("Hello, welcome!\nThis is some text that should be centered!"))
print(centerify("Hello, welcome!\nThis is some text that should be centered!", 80))

<script src="//repl.it/embed/IUUa/4.js"></script>