I've been messing around with text-alignment, including the string methods, and f-strings. My current goal is to create a table of contents styled output, that looks something like this:
Introduction....................1
Python Basics...................5
Creating Your First Program....12
Operators and Variables........29
Easily enough, I've been able to format it like:
Introduction 1
Python Basics 5
Creating Your First Program 12
Operators and Variables 29
The code being:
for chapt, page in contents:
print(f"{chapt:<30}{page:>5}")
I can't find any resources on the web that describe how to add a fill character and f-strings together. Using the .center
, .ljust
, .rjust
string methods, I have been able to do this, as they take the parameter of width and then an optional fill character.
On this post, I thought I found a solution.
The
x<y
portion signifies to left-align the text with a width of y spaces. For any unused space, pad it with character x.
I tried this method, editing my print statement from print(f"{chapt:<30}{page:>5}")
to print(f"{chapt:'.'<30}{page:'.'>5}")
. Yet this returns an error:
Traceback (most recent call last):
File "main.py", line 40, in <module>
print(f"{chapt:'.'<30}{page:'.'>5}")
ValueError: Invalid format specifier
(Line 40 being the line in my full code.)
Is there any way to choose a fill character, or would I have to revert to the string methods. I believe there is, but I can not figure out how to use it. Thanks!