0

I'm trying to pad dynamic elements within a table, but it seems as though the native padding function doesn't work with variables. Just wondering if I'm doing something wrong or if there are simple alternatives to center padding. I know of ljust and rjust but there is no m(iddle)just for some reason.

Simple example:

a=10
b='hi'
print(f'{b:^a}')

or

a=10
b='hi'
print('{:^a}'.format(b))

produces

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Unknown format code 'a' for object of type 'str'

Typing 10 in place of a in the print statement makes it work as intended, so I'm guessing 'a' is being interpreted as a string by the string formatted. Is a helper function the only way out here?

1
  • 2
    What is the desired output? Commented Jan 6, 2021 at 20:40

2 Answers 2

1
In [114]: print(f'{b:^{a}}')                                                                                                                                                                                                                                                 
    hi    

In [115]: print(f'"{b:^{a}}"')                                                                                                                                                                                                                                               
"    hi    "
Sign up to request clarification or add additional context in comments.

Comments

1

Probably want to add another set of brackets

a=10
b='hi'
print(f'{b:^{a}}')

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.