Python Forum
How to aling the printing statements
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to aling the printing statements
#1
Hi,
I have below code to print matching start index and end index with aligned columns.
I use below code:

import re
pattern = re.compile('ab')
matcher = pattern.finditer('zxaababaababa')
for match in matcher:
    print("starting index   ", str(match.start()) + " End index ", str(match.end()))
    #print("The matched endstarting index is: ", match.end())
My output is below:
starting index    3  End index  5
starting index    5  End index  7
starting index    8  End index  10
starting index    10  End index  12
but my desired output in 3rd line the columns are not aligned after 10:

starting index    3  End index  5
starting index    5  End index  7
starting index    8  End index  10
starting index    10 End index  12
Reply
#2
>>> import re
>>> pattern = re.compile('ab')
>>> matcher = pattern.finditer('zxaababaababa')
>>> for match in matcher:
...     print("starting index   ", str(match.start()).ljust(4,' ') + " End index ", str(match.end()).ljust(4,' '))
...
starting index    3    End index  5
starting index    5    End index  7
starting index    8    End index  10
starting index    10   End index  12
Reply
#3
Or use a format string.
import re
pattern = re.compile('ab')
matcher = pattern.finditer('zxaababaababa')
for match in matcher:
    print(f'Starting index {match.start():<2}  End index {match.end():<2}')
Reply
#4
Although it's working, but I want to learn how it's working (logic)?
Reply
#5
The f'Starting index...' thing is a formatted string literal. It is a new (V3.6) shorthand for the string format command. Text inside the curly brackets is evaluated and replaced. In my example {match.start():<2} is evaluated and then some formatting is applied.

Match.start() becomes '3', then the :<2 says "I want you to be 2 wide and left justified", '3 '. The formatting codes are documented here:
https://docs.python.org/3.8/library/string.html

And you can find more information about fstrings here:
https://realpython.com/python-f-strings/
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  If & Else statements not printing. blackjesus24 3 2,493 Jan-22-2020, 04:43 PM
Last Post: blackjesus24

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020