Python: String Formatter Align center

Question:

print('%24s' % "MyString")     # prints right aligned
print('%-24s' % "MyString")    # prints left aligned

How do I print it in the center? Is there a quick way to do this?

I don’t want the text to be in the center of my screen. I want it to be in the center of that 24 spaces. If I have to do it manually, what is the math behind adding the same no. of spaces before and after the text?

Answers:

You can use str.center() method.

In your case, it will be: "MyString".center(24)

Answered By: Vlad Sydorenko

Use the new-style format method instead of the old-style % operator, which doesn’t have the centering functionality:

print('{:^24s}'.format("MyString"))
Answered By: Błotosmętek

Ideally you would use .format().

Resource that explains center. along with others here

Answered By: Kyle Becker

Python 3:

You can follow the below syntax:

stringName.center(width,fillChar)

In your example:

"MyString".center(24," ")
Answered By: Dipen Gajjar