Reputation: 113
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
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
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