Kt Ewing
Kt Ewing

Reputation: 113

Is it possible to align a print statement to the center in Python?

I was wondering if it was possible to align a print statement in Python (newest version). For example:

print ("hello world")

would appear on the user's screen on the left side, so can i make it centre-aligned instead?

Thank you so much for your help!

= 80 (column) x 30 ( width)

Upvotes: 11

Views: 31487

Answers (2)

Remi Guan
Remi Guan

Reputation: 22282

First, use os.get_terminal_size() function to get the console's width(so you don't need to know your console before):

>>> import os
>>> os.get_terminal_size()
os.terminal_size(columns=80, lines=24)
>>> os.get_terminal_size().columns
80
>>> os.get_terminal_size().columns  # after I changed my console's width
97
>>> 

Then, we can use str.center():

>>> import os
>>> print("hello world".center(os.get_terminal_size().columns))
                                  hello world                                  
>>> 

So the clear code looks like:

import os

width = os.get_terminal_size().columns
print("hello world".center(width))

Upvotes: 19

Karl Barker
Karl Barker

Reputation: 11341

Knowing the console width, you can also print centered using format:

 # console width is 50 
 print "{: ^50s}".format("foo")

will print 'foo' in the middle of a 50-column console.

Upvotes: 5

Related Questions