28

という文字列があります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!                   

助言がありますか?

4

2 に答える 2

30

各行を個別に中央揃えにする必要があります。

'\n'.join('{:^80}'.format(s) for s in message.split('\n'))
于 2012-11-14T17:00:21.470 に答える
1

これは、最長の幅に基づいてテキストを自動中央揃えする代替手段です。

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>

于 2017-05-27T13:45:56.873 に答える